<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>MCUXpresso SDK API Reference Manual: UART Driver</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="fs_logo.gif"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">MCUXpresso SDK API Reference Manual
   &#160;<span id="projectnumber">Rev. 0</span>
   </div>
   <div id="projectbrief">NXP Semiconductors</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>API&#160;Reference</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__uart__driver.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#enumval-members">Enumerator</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">UART Driver<div class="ingroups"><a class="el" href="group__uart.html">UART: Universal Asynchronous Receiver/Transmitter Driver</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The MCUXpresso SDK provides a peripheral driver for the Universal Asynchronous Receiver/Transmitter (UART) module of MCUXpresso SDK devices.</p>
<p>The UART driver includes functional APIs and transactional APIs.</p>
<p>Functional APIs are used for UART initialization/configuration/operation for optimization/customization purpose. Using the functional API requires the knowledge of the UART peripheral and how to organize functional APIs to meet the application requirements. All functional APIs use the peripheral base address as the first parameter. UART functional operation groups provide the functional API set.</p>
<p>Transactional APIs can be used to enable the peripheral quickly and in the application if the code size and performance of transactional APIs can satisfy the requirements. If the code size and performance are critical requirements, see the transactional API implementation and write custom code. All transactional APIs use the uart_handle_t as the second parameter. Initialize the handle by calling the <a class="el" href="group__uart__driver.html#ga63db308c32019b7dd6c0647d618e5247" title="Initializes the UART handle. ">UART_TransferCreateHandle()</a> API.</p>
<p>Transactional APIs support asynchronous transfer, which means that the functions <a class="el" href="group__uart__driver.html#gad89afd7db1656c5aef404bb285d0dc05" title="Transmits a buffer of data using the interrupt method. ">UART_TransferSendNonBlocking()</a> and <a class="el" href="group__uart__driver.html#gaf804acde5d73ce0a5bf54b06195e1218" title="Receives a buffer of data using an interrupt method. ">UART_TransferReceiveNonBlocking()</a> set up an interrupt for data transfer. When the transfer completes, the upper layer is notified through a callback function with the kStatus_UART_TxIdle and kStatus_UART_RxIdle.</p>
<p>Transactional receive APIs support the ring buffer. Prepare the memory for the ring buffer and pass in the start address and size while calling the <a class="el" href="group__uart__driver.html#ga63db308c32019b7dd6c0647d618e5247" title="Initializes the UART handle. ">UART_TransferCreateHandle()</a>. If passing NULL, the ring buffer feature is disabled. When the ring buffer is enabled, the received data is saved to the ring buffer in the background. The <a class="el" href="group__uart__driver.html#gaf804acde5d73ce0a5bf54b06195e1218" title="Receives a buffer of data using an interrupt method. ">UART_TransferReceiveNonBlocking()</a> function first gets data from the ring buffer. If the ring buffer does not have enough data, the function first returns the data in the ring buffer and then saves the received data to user memory. When all data is received, the upper layer is informed through a callback with the kStatus_UART_RxIdle.</p>
<p>If the receive ring buffer is full, the upper layer is informed through a callback with the kStatus_UART_RxRingBufferOverrun. In the callback function, the upper layer reads data out from the ring buffer. If not, existing data is overwritten by the new data.</p>
<p>The ring buffer size is specified when creating the handle. Note that one byte is reserved for the ring buffer maintenance. When creating handle using the following code.</p>
<div class="fragment"><div class="line"><a class="code" href="group__uart__driver.html#ga63db308c32019b7dd6c0647d618e5247">UART_TransferCreateHandle</a>(UART0, &amp;handle, UART_UserCallback, NULL);</div>
</div><!-- fragment --><p>In this example, the buffer size is 32, but only 31 bytes are used for saving data.</p>
<h1><a class="anchor" id="UARTCase"></a>
Typical use case</h1>
<h2><a class="anchor" id="UARTCasePolling"></a>
UART Send/receive using a polling method</h2>
<div class="fragment"><div class="line"><a class="code" href="group__uart__driver.html#ga47c7c09e04a0497f4530d553e27d96c5">UART_GetDefaultConfig</a>(&amp;config);</div>
<div class="line">config.baudRate_Bps = DEMO_UART_BAUDRATE;</div>
<div class="line">config.enableTx = <span class="keyword">true</span>;</div>
<div class="line">config.enableRx = <span class="keyword">true</span>;</div>
<div class="line"></div>
<div class="line"><a class="code" href="group__uart__driver.html#gab5965a8e11f7e1d4d531141291fd5288">UART_Init</a>(DEMO_UART, &amp;config, DEMO_UART_FREQ);</div>
<div class="line"><a class="code" href="group__uart__driver.html#gad67794d80b7ee2d3292b41af6ff1e100">UART_WriteBlocking</a>(DEMO_UART, txbuff, <span class="keyword">sizeof</span>(txbuff) - 1);</div>
<div class="line"></div>
<div class="line"><span class="keywordflow">while</span> (1)</div>
<div class="line">{</div>
<div class="line">    <a class="code" href="group__uart__driver.html#ga39d59e8a94f1af451a0db81888596639">UART_ReadBlocking</a>(DEMO_UART, &amp;ch, 1);</div>
<div class="line">    <a class="code" href="group__uart__driver.html#gad67794d80b7ee2d3292b41af6ff1e100">UART_WriteBlocking</a>(DEMO_UART, &amp;ch, 1);</div>
<div class="line">}</div>
</div><!-- fragment --><h2><a class="anchor" id="UARTCaseInterrupt"></a>
UART Send/receive using an interrupt method</h2>
<div class="fragment"><div class="line"><span class="keywordtype">void</span> DEMO_UART_IRQHandler(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line">    uint8_t data;</div>
<div class="line"></div>
<div class="line">    <span class="comment">/* If new data arrived. */</span></div>
<div class="line">    <span class="keywordflow">if</span> ((<a class="code" href="group__uart__driver.html#ga5a6ca92e153c2a2c1323c5dc2fae6ab4">UART_GetStatusFlag</a>(DEMO_UART, <a class="code" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a5f68dab1ddbb31a54997e5e33534b7e0">kUART_RxDataReadyFlag</a>)) || (<a class="code" href="group__uart__driver.html#ga5a6ca92e153c2a2c1323c5dc2fae6ab4">UART_GetStatusFlag</a>(DEMO_UART, <a class="code" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a93d3c56466b4656dcce08d9323d7afd8">kUART_RxOverrunFlag</a>)))</div>
<div class="line">    {</div>
<div class="line">        data = <a class="code" href="group__uart__driver.html#ga3728011ac7906f3e03bb677b0f9cf7b4">UART_ReadByte</a>(DEMO_UART);</div>
<div class="line"></div>
<div class="line">        <span class="comment">/* If ring buffer is not full, add data to ring buffer. */</span></div>
<div class="line">        <span class="keywordflow">if</span> (((rxIndex + 1) % DEMO_RING_BUFFER_SIZE) != txIndex)</div>
<div class="line">        {</div>
<div class="line">            demoRingBuffer[rxIndex] = data;</div>
<div class="line">            rxIndex++;</div>
<div class="line">            rxIndex %= DEMO_RING_BUFFER_SIZE;</div>
<div class="line">        }</div>
<div class="line">    }</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line">    <a class="code" href="group__uart__driver.html#structuart__config__t">uart_config_t</a> config;</div>
<div class="line"></div>
<div class="line">    BOARD_InitHardware();</div>
<div class="line">    SystemInstallIrqHandler(DEMO_IRQn, (system_irq_handler_t)DEMO_UART_IRQHandler, NULL);</div>
<div class="line"></div>
<div class="line">    <span class="comment">/*</span></div>
<div class="line"><span class="comment">     * config.baudRate_Bps = 115200U;</span></div>
<div class="line"><span class="comment">     * config.parityMode = kUART_ParityDisabled;</span></div>
<div class="line"><span class="comment">     * config.dataBitsCount = kUART_EightDataBits;</span></div>
<div class="line"><span class="comment">     * config.stopBitCount = kUART_OneStopBit;</span></div>
<div class="line"><span class="comment">     * config.txFifoWatermark = 2;</span></div>
<div class="line"><span class="comment">     * config.rxFifoWatermark = 1;</span></div>
<div class="line"><span class="comment">     * config.enableTx = false;</span></div>
<div class="line"><span class="comment">     * config.enableRx = false;</span></div>
<div class="line"><span class="comment">     */</span></div>
<div class="line">    <a class="code" href="group__uart__driver.html#ga47c7c09e04a0497f4530d553e27d96c5">UART_GetDefaultConfig</a>(&amp;config);</div>
<div class="line">    config.<a class="code" href="group__uart__driver.html#gacc123668836f3432c54ee6a2f6f318f1">baudRate_Bps</a> = DEMO_UART_BAUDRATE;</div>
<div class="line">    config.<a class="code" href="group__uart__driver.html#ga91d575902455699a312c64b564133a8d">enableTx</a> = <span class="keyword">true</span>;</div>
<div class="line">    config.<a class="code" href="group__uart__driver.html#gaa045acd340fc86d70a497f49e0a95bdd">enableRx</a> = <span class="keyword">true</span>;</div>
<div class="line"></div>
<div class="line">    <a class="code" href="group__uart__driver.html#gab5965a8e11f7e1d4d531141291fd5288">UART_Init</a>(DEMO_UART, &amp;config, DEMO_UART_CLKSRC);</div>
<div class="line"></div>
<div class="line">    <span class="comment">/* Send g_tipString out. */</span></div>
<div class="line">    <a class="code" href="group__uart__driver.html#gad67794d80b7ee2d3292b41af6ff1e100">UART_WriteBlocking</a>(DEMO_UART, g_tipString, <span class="keyword">sizeof</span>(g_tipString) / <span class="keyword">sizeof</span>(g_tipString[0]) - 1);</div>
<div class="line"></div>
<div class="line">    <span class="comment">/* Enable RX interrupt. */</span></div>
<div class="line">    <a class="code" href="group__uart__driver.html#ga49ecd761481a22956e3f46285038719c">UART_EnableInterrupts</a>(DEMO_UART, kUART_RxDataReadyEnable | kUART_RxOverrunEnable);</div>
<div class="line">    EnableIRQ(DEMO_IRQn);</div>
<div class="line"></div>
<div class="line">    <span class="keywordflow">while</span> (1)</div>
<div class="line">    {</div>
<div class="line">        <span class="comment">/* Send data only when UART TX register is empty and ring buffer has data to send out. */</span></div>
<div class="line">        <span class="keywordflow">while</span> ((<a class="code" href="group__uart__driver.html#ga5a6ca92e153c2a2c1323c5dc2fae6ab4">UART_GetStatusFlag</a>(DEMO_UART, <a class="code" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a3913198655fd8ce2eb451d0550619d32">kUART_TxReadyFlag</a>)) &amp;&amp; (rxIndex != txIndex))</div>
<div class="line">        {</div>
<div class="line">            <a class="code" href="group__uart__driver.html#ga371d2ceda535de3a74beba5a3465fab0">UART_WriteByte</a>(DEMO_UART, demoRingBuffer[txIndex]);</div>
<div class="line">            txIndex++;</div>
<div class="line">            txIndex %= DEMO_RING_BUFFER_SIZE;</div>
<div class="line">        }</div>
<div class="line">    }</div>
<div class="line">}</div>
</div><!-- fragment --><h2><a class="anchor" id="UARTCaseRing"></a>
UART Receive using the ringbuffer feature</h2>
<div class="fragment"><div class="line"><span class="preprocessor">#define RX_RING_BUFFER_SIZE 20U</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define ECHO_BUFFER_SIZE 8U</span></div>
<div class="line"><span class="preprocessor"></span></div>
<div class="line"><span class="comment">/*******************************************************************************</span></div>
<div class="line"><span class="comment"> * Prototypes</span></div>
<div class="line"><span class="comment"> ******************************************************************************/</span></div>
<div class="line"></div>
<div class="line"><span class="comment">/* UART user callback */</span></div>
<div class="line"><span class="keywordtype">void</span> UART_UserCallback(UART_Type *base, uart_handle_t *handle, status_t status, <span class="keywordtype">void</span> *userData);</div>
<div class="line"></div>
<div class="line"><span class="comment">/*******************************************************************************</span></div>
<div class="line"><span class="comment"> * Variables</span></div>
<div class="line"><span class="comment"> ******************************************************************************/</span></div>
<div class="line">uart_handle_t g_uartHandle;</div>
<div class="line">uint8_t g_tipString[] = <span class="stringliteral">&quot;UART RX ring buffer example\r\nSend back received data\r\nEcho every 8 bytes\r\n&quot;</span>;</div>
<div class="line">uint8_t g_rxRingBuffer[RX_RING_BUFFER_SIZE] = {0}; <span class="comment">/* RX ring buffer. */</span></div>
<div class="line"></div>
<div class="line">uint8_t g_rxBuffer[ECHO_BUFFER_SIZE] = {0}; <span class="comment">/* Buffer for receive data to echo. */</span></div>
<div class="line">uint8_t g_txBuffer[ECHO_BUFFER_SIZE] = {0}; <span class="comment">/* Buffer for send data to echo. */</span></div>
<div class="line"><span class="keyword">volatile</span> <span class="keywordtype">bool</span> rxBufferEmpty = <span class="keyword">true</span>;</div>
<div class="line"><span class="keyword">volatile</span> <span class="keywordtype">bool</span> txBufferFull = <span class="keyword">false</span>;</div>
<div class="line"><span class="keyword">volatile</span> <span class="keywordtype">bool</span> txOnGoing = <span class="keyword">false</span>;</div>
<div class="line"><span class="keyword">volatile</span> <span class="keywordtype">bool</span> rxOnGoing = <span class="keyword">false</span>;</div>
<div class="line"></div>
<div class="line"><span class="comment">/*******************************************************************************</span></div>
<div class="line"><span class="comment"> * Code</span></div>
<div class="line"><span class="comment"> ******************************************************************************/</span></div>
<div class="line"><span class="comment">/* UART user callback */</span></div>
<div class="line"><span class="keywordtype">void</span> UART_UserCallback(UART_Type *base, uart_handle_t *handle, status_t status, <span class="keywordtype">void</span> *userData)</div>
<div class="line">{</div>
<div class="line">    userData = userData;</div>
<div class="line"></div>
<div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84baf36c829b1b889517bf775c0d7ce29fa6">kStatus_UART_TxIdle</a> == status)</div>
<div class="line">    {</div>
<div class="line">        txBufferFull = <span class="keyword">false</span>;</div>
<div class="line">        txOnGoing = <span class="keyword">false</span>;</div>
<div class="line">    }</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line">    <a class="code" href="group__uart__driver.html#structuart__config__t">uart_config_t</a> config;</div>
<div class="line">    <a class="code" href="group__uart__driver.html#structuart__transfer__t">uart_transfer_t</a> xfer;</div>
<div class="line">    <a class="code" href="group__uart__driver.html#structuart__transfer__t">uart_transfer_t</a> sendXfer;</div>
<div class="line">    <a class="code" href="group__uart__driver.html#structuart__transfer__t">uart_transfer_t</a> receiveXfer;</div>
<div class="line">    <span class="keywordtype">size_t</span> receivedBytes;</div>
<div class="line">    uint32_t i;</div>
<div class="line"></div>
<div class="line">    BOARD_InitHardware();</div>
<div class="line"></div>
<div class="line">    <span class="comment">/*</span></div>
<div class="line"><span class="comment">     * config.baudRate_Bps = 115200U;</span></div>
<div class="line"><span class="comment">     * config.parityMode = kUART_ParityDisabled;</span></div>
<div class="line"><span class="comment">     * config.dataBitsCount = kUART_EightDataBits;</span></div>
<div class="line"><span class="comment">     * config.stopBitCount = kUART_OneStopBit;</span></div>
<div class="line"><span class="comment">     * config.txFifoWatermark = 2;</span></div>
<div class="line"><span class="comment">     * config.rxFifoWatermark = 16;</span></div>
<div class="line"><span class="comment">     * config.enableTx = false;</span></div>
<div class="line"><span class="comment">     * config.enableRx = false;</span></div>
<div class="line"><span class="comment">     */</span></div>
<div class="line">    <a class="code" href="group__uart__driver.html#ga47c7c09e04a0497f4530d553e27d96c5">UART_GetDefaultConfig</a>(&amp;config);</div>
<div class="line">    config.<a class="code" href="group__uart__driver.html#gacc123668836f3432c54ee6a2f6f318f1">baudRate_Bps</a> = DEMO_UART_BAUDRATE;</div>
<div class="line">    config.<a class="code" href="group__uart__driver.html#ga5eb9ab81752080bc726b8d625d2b6b21">txFifoWatermark</a> = 2;</div>
<div class="line">    config.<a class="code" href="group__uart__driver.html#ga1bb7b2f0f7df79977d33be264fb5163a">rxFifoWatermark</a> = 16;</div>
<div class="line">    config.<a class="code" href="group__uart__driver.html#ga91d575902455699a312c64b564133a8d">enableTx</a> = <span class="keyword">true</span>;</div>
<div class="line">    config.<a class="code" href="group__uart__driver.html#gaa045acd340fc86d70a497f49e0a95bdd">enableRx</a> = <span class="keyword">true</span>;</div>
<div class="line"></div>
<div class="line">    <a class="code" href="group__uart__driver.html#gab5965a8e11f7e1d4d531141291fd5288">UART_Init</a>(DEMO_UART, &amp;config, DEMO_UART_CLKSRC);</div>
<div class="line">    <a class="code" href="group__uart__driver.html#ga63db308c32019b7dd6c0647d618e5247">UART_TransferCreateHandle</a>(DEMO_UART, &amp;g_uartHandle, UART_UserCallback, NULL);</div>
<div class="line">    <a class="code" href="group__uart__driver.html#ga223fba584bfabd599629d5ce92f929ac">UART_TransferStartRingBuffer</a>(DEMO_UART, &amp;g_uartHandle, g_rxRingBuffer, RX_RING_BUFFER_SIZE);</div>
<div class="line"></div>
<div class="line">    <span class="comment">/* Send g_tipString out. */</span></div>
<div class="line">    xfer.<a class="code" href="group__uart__driver.html#gaf91f05b0f951836e3002f60f0575f369">data</a> = g_tipString;</div>
<div class="line">    xfer.<a class="code" href="group__uart__driver.html#ga21820f8294de0d75d863b72512a7c12f">dataSize</a> = <span class="keyword">sizeof</span>(g_tipString) - 1;</div>
<div class="line">    txOnGoing = <span class="keyword">true</span>;</div>
<div class="line">    <a class="code" href="group__uart__driver.html#gad89afd7db1656c5aef404bb285d0dc05">UART_TransferSendNonBlocking</a>(DEMO_UART, &amp;g_uartHandle, &amp;xfer);</div>
<div class="line"></div>
<div class="line">    <span class="comment">/* Wait send finished */</span></div>
<div class="line">    <span class="keywordflow">while</span> (txOnGoing)</div>
<div class="line">    {</div>
<div class="line">    }</div>
<div class="line"></div>
<div class="line">    <span class="comment">/* Start to echo. */</span></div>
<div class="line">    sendXfer.<a class="code" href="group__uart__driver.html#gaf91f05b0f951836e3002f60f0575f369">data</a> = g_txBuffer;</div>
<div class="line">    sendXfer.<a class="code" href="group__uart__driver.html#ga21820f8294de0d75d863b72512a7c12f">dataSize</a> = ECHO_BUFFER_SIZE;</div>
<div class="line">    receiveXfer.<a class="code" href="group__uart__driver.html#gaf91f05b0f951836e3002f60f0575f369">data</a> = g_rxBuffer;</div>
<div class="line">    receiveXfer.<a class="code" href="group__uart__driver.html#ga21820f8294de0d75d863b72512a7c12f">dataSize</a> = ECHO_BUFFER_SIZE;</div>
<div class="line"></div>
<div class="line">    <span class="keywordflow">while</span> (1)</div>
<div class="line">    {</div>
<div class="line">        <span class="comment">/* If g_txBuffer is empty and g_rxBuffer is full, copy g_rxBuffer to g_txBuffer. */</span></div>
<div class="line">        <span class="keywordflow">if</span> ((!rxBufferEmpty) &amp;&amp; (!txBufferFull))</div>
<div class="line">        {</div>
<div class="line">            memcpy(g_txBuffer, g_rxBuffer, ECHO_BUFFER_SIZE);</div>
<div class="line">            rxBufferEmpty = <span class="keyword">true</span>;</div>
<div class="line">            txBufferFull = <span class="keyword">true</span>;</div>
<div class="line">        }</div>
<div class="line"></div>
<div class="line">        <span class="comment">/* If the data in ring buffer reach ECHO_BUFFER_SIZE, then start to read data from ring buffer. */</span></div>
<div class="line">        <span class="keywordflow">if</span> (ECHO_BUFFER_SIZE &lt;= <a class="code" href="group__uart__driver.html#ga3921aa660977ca77dadf95fa35f1c3a9">UART_TransferGetRxRingBufferLength</a>(&amp;g_uartHandle))</div>
<div class="line">        {</div>
<div class="line">            <a class="code" href="group__uart__driver.html#gaf804acde5d73ce0a5bf54b06195e1218">UART_TransferReceiveNonBlocking</a>(DEMO_UART, &amp;g_uartHandle, &amp;receiveXfer, &amp;receivedBytes);</div>
<div class="line">            rxBufferEmpty = <span class="keyword">false</span>;</div>
<div class="line">        }</div>
<div class="line"></div>
<div class="line">        <span class="comment">/* If TX is idle and g_txBuffer is full, start to send data. */</span></div>
<div class="line">        <span class="keywordflow">if</span> ((!txOnGoing) &amp;&amp; txBufferFull)</div>
<div class="line">        {</div>
<div class="line">            txOnGoing = <span class="keyword">true</span>;</div>
<div class="line">            <a class="code" href="group__uart__driver.html#gad89afd7db1656c5aef404bb285d0dc05">UART_TransferSendNonBlocking</a>(DEMO_UART, &amp;g_uartHandle, &amp;sendXfer);</div>
<div class="line">        }</div>
<div class="line"></div>
<div class="line">        <span class="comment">/* Delay some time, simulate the app is processing other things, input data save to ring buffer. */</span></div>
<div class="line">        i = 0x10U;</div>
<div class="line">        <span class="keywordflow">while</span> (i--)</div>
<div class="line">        {</div>
<div class="line">            __NOP();</div>
<div class="line">        }</div>
<div class="line">    }</div>
<div class="line">}</div>
</div><!-- fragment --><h2><a class="anchor" id="UARTCaseAutoBaudRate"></a>
UART automatic baud rate detect feature</h2>
<div class="fragment"><div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line">    uint8_t ch;</div>
<div class="line"></div>
<div class="line">    <a class="code" href="group__uart__driver.html#structuart__config__t">uart_config_t</a> config;</div>
<div class="line"></div>
<div class="line">    BOARD_InitHardware();</div>
<div class="line"></div>
<div class="line">    <span class="comment">/*</span></div>
<div class="line"><span class="comment">     * config.baudRate_Bps = 115200U;</span></div>
<div class="line"><span class="comment">     * config.parityMode = kUART_ParityDisabled;</span></div>
<div class="line"><span class="comment">     * config.stopBitCount = kUART_OneStopBit;</span></div>
<div class="line"><span class="comment">     * config.txFifoWatermark = 2;</span></div>
<div class="line"><span class="comment">     * config.rxFifoWatermark = 1;</span></div>
<div class="line"><span class="comment">     * config.enableTx = false;</span></div>
<div class="line"><span class="comment">     * config.enableRx = false;</span></div>
<div class="line"><span class="comment">     */</span></div>
<div class="line">    <a class="code" href="group__uart__driver.html#ga47c7c09e04a0497f4530d553e27d96c5">UART_GetDefaultConfig</a>(&amp;config);</div>
<div class="line">    config.<a class="code" href="group__uart__driver.html#gacc123668836f3432c54ee6a2f6f318f1">baudRate_Bps</a> = NULL;</div>
<div class="line"></div>
<div class="line">    config.<a class="code" href="group__uart__driver.html#ga91d575902455699a312c64b564133a8d">enableTx</a> = <span class="keyword">true</span>;</div>
<div class="line">    config.<a class="code" href="group__uart__driver.html#gaa045acd340fc86d70a497f49e0a95bdd">enableRx</a> = <span class="keyword">true</span>;</div>
<div class="line"></div>
<div class="line">    <a class="code" href="group__uart__driver.html#gab5965a8e11f7e1d4d531141291fd5288">UART_Init</a>(DEMO_UART, &amp;config, DEMO_UART_FREQ);</div>
<div class="line">    <a class="code" href="group__uart__driver.html#gac88019d2b8abe60bd6ee8cf2c1e8dfb0">UART_EnableAutoBaudRate</a>(DEMO_UART, <span class="keyword">true</span>);</div>
<div class="line"></div>
<div class="line">    <span class="keywordflow">while</span> (!<a class="code" href="group__uart__driver.html#ga28850ab8c31bd095fde407992b937035">UART_IsAutoBaudRateComplete</a>(DEMO_UART))</div>
<div class="line">    {</div>
<div class="line">    }</div>
<div class="line">    <a class="code" href="group__uart__driver.html#gad67794d80b7ee2d3292b41af6ff1e100">UART_WriteBlocking</a>(DEMO_UART, infobuff, <span class="keyword">sizeof</span>(infobuff) - 1);</div>
<div class="line">    <span class="comment">/* Read the detect character from recevier register */</span></div>
<div class="line">    <a class="code" href="group__uart__driver.html#ga39d59e8a94f1af451a0db81888596639">UART_ReadBlocking</a>(DEMO_UART, &amp;ch, 1);</div>
<div class="line">    <a class="code" href="group__uart__driver.html#gad67794d80b7ee2d3292b41af6ff1e100">UART_WriteBlocking</a>(DEMO_UART, &amp;ch, 1);</div>
<div class="line"></div>
<div class="line">    <a class="code" href="group__uart__driver.html#gad67794d80b7ee2d3292b41af6ff1e100">UART_WriteBlocking</a>(DEMO_UART, txbuff, <span class="keyword">sizeof</span>(txbuff) - 1);</div>
<div class="line"></div>
<div class="line">    <span class="keywordflow">while</span> (1)</div>
<div class="line">    {</div>
<div class="line">        <a class="code" href="group__uart__driver.html#ga39d59e8a94f1af451a0db81888596639">UART_ReadBlocking</a>(DEMO_UART, &amp;ch, 1);</div>
<div class="line">        <a class="code" href="group__uart__driver.html#gad67794d80b7ee2d3292b41af6ff1e100">UART_WriteBlocking</a>(DEMO_UART, &amp;ch, 1);</div>
<div class="line">    }</div>
<div class="line">}</div>
</div><!-- fragment --> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:structuart__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#structuart__config__t">uart_config_t</a></td></tr>
<tr class="memdesc:structuart__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART configuration structure.  <a href="group__uart__driver.html#structuart__config__t">More...</a><br/></td></tr>
<tr class="separator:structuart__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structuart__transfer__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#structuart__transfer__t">uart_transfer_t</a></td></tr>
<tr class="memdesc:structuart__transfer__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART transfer structure.  <a href="group__uart__driver.html#structuart__transfer__t">More...</a><br/></td></tr>
<tr class="separator:structuart__transfer__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:struct__uart__handle"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#struct__uart__handle">uart_handle_t</a></td></tr>
<tr class="memdesc:struct__uart__handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART handle structure.  <a href="group__uart__driver.html#struct__uart__handle">More...</a><br/></td></tr>
<tr class="separator:struct__uart__handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaf164fa4e12ff8a3e3f3997512001e007"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gaf164fa4e12ff8a3e3f3997512001e007">uart_transfer_callback_t</a> )(UART_Type *base, uart_handle_t *handle, status_t status, void *userData)</td></tr>
<tr class="memdesc:gaf164fa4e12ff8a3e3f3997512001e007"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART transfer callback function.  <a href="#gaf164fa4e12ff8a3e3f3997512001e007">More...</a><br/></td></tr>
<tr class="separator:gaf164fa4e12ff8a3e3f3997512001e007"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gacef40dc8e8ac174bfe40ebcbc980f84b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gacef40dc8e8ac174bfe40ebcbc980f84b">_uart_status</a> { <br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84ba19ddee4fe5963467600028b78fb468e7">kStatus_UART_TxBusy</a> = MAKE_STATUS(kStatusGroup_IUART, 0), 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84ba68cf23f981c4b85f82291163fbb2a5e6">kStatus_UART_RxBusy</a> = MAKE_STATUS(kStatusGroup_IUART, 1), 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84baf36c829b1b889517bf775c0d7ce29fa6">kStatus_UART_TxIdle</a> = MAKE_STATUS(kStatusGroup_IUART, 2), 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84bae0877b14627ed2aa8ddb2bf5b033f407">kStatus_UART_RxIdle</a> = MAKE_STATUS(kStatusGroup_IUART, 3), 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84ba765913f003819ed87b861d187bf79ab8">kStatus_UART_TxWatermarkTooLarge</a> = MAKE_STATUS(kStatusGroup_IUART, 4), 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84ba720cefde05389830f35f6e6df6f6ac67">kStatus_UART_RxWatermarkTooLarge</a> = MAKE_STATUS(kStatusGroup_IUART, 5), 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84ba5ee8e23fc9ab20cf366942751b895f54">kStatus_UART_FlagCannotClearManually</a>, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84ba950972a9e2ebbaa13c92e8f5a51f785d">kStatus_UART_Error</a> = MAKE_STATUS(kStatusGroup_IUART, 7), 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84ba2e5b644b1e10c426af818bc78657e992">kStatus_UART_RxRingBufferOverrun</a> = MAKE_STATUS(kStatusGroup_IUART, 8), 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84bab6b1fd6c2deec25992449f5b12303a26">kStatus_UART_RxHardwareOverrun</a> = MAKE_STATUS(kStatusGroup_IUART, 9), 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84bae4ef4df9a5f756ccf1b4bf08292ec2fb">kStatus_UART_NoiseError</a> = MAKE_STATUS(kStatusGroup_IUART, 10), 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84baa7aa134f85df3d5863ca962ce1ea7ee0">kStatus_UART_FramingError</a> = MAKE_STATUS(kStatusGroup_IUART, 11), 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84baea20b2588c38f259f1412aa7132c9ef8">kStatus_UART_ParityError</a> = MAKE_STATUS(kStatusGroup_IUART, 12), 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84bae6cdb41e1b49958f57727cd47afd69b2">kStatus_UART_BaudrateNotSupport</a>, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84ba43540408a2faf9ce9e8e8c940bddd456">kStatus_UART_BreakDetect</a> = MAKE_STATUS(kStatusGroup_IUART, 14)
<br/>
 }</td></tr>
<tr class="memdesc:gacef40dc8e8ac174bfe40ebcbc980f84b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Error codes for the UART driver.  <a href="group__uart__driver.html#gacef40dc8e8ac174bfe40ebcbc980f84b">More...</a><br/></td></tr>
<tr class="separator:gacef40dc8e8ac174bfe40ebcbc980f84b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc68b8fd9ded3990f84129df23fee798"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gadc68b8fd9ded3990f84129df23fee798">uart_data_bits_t</a> { <br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggadc68b8fd9ded3990f84129df23fee798ab8c89dfed11b0628f58344705d4b0fb8">kUART_SevenDataBits</a> = 0x0U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggadc68b8fd9ded3990f84129df23fee798a2d77888a8dd82a66fb7bd86e51b4127c">kUART_EightDataBits</a> = 0x1U
<br/>
 }</td></tr>
<tr class="memdesc:gadc68b8fd9ded3990f84129df23fee798"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART data bits count.  <a href="group__uart__driver.html#gadc68b8fd9ded3990f84129df23fee798">More...</a><br/></td></tr>
<tr class="separator:gadc68b8fd9ded3990f84129df23fee798"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga436e5a7bdb5f24decb5bfb0c87a83ff4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga436e5a7bdb5f24decb5bfb0c87a83ff4">uart_parity_mode_t</a> { <br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga436e5a7bdb5f24decb5bfb0c87a83ff4a97e2feae6671a6de1126ebc2edf4606b">kUART_ParityDisabled</a> = 0x0U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga436e5a7bdb5f24decb5bfb0c87a83ff4a9e68fe3aba46e045bee5433ed098bff0">kUART_ParityEven</a> = 0x2U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga436e5a7bdb5f24decb5bfb0c87a83ff4ae48c7fabc9babf1be626ebeb2627a54c">kUART_ParityOdd</a> = 0x3U
<br/>
 }</td></tr>
<tr class="memdesc:ga436e5a7bdb5f24decb5bfb0c87a83ff4"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART parity mode.  <a href="group__uart__driver.html#ga436e5a7bdb5f24decb5bfb0c87a83ff4">More...</a><br/></td></tr>
<tr class="separator:ga436e5a7bdb5f24decb5bfb0c87a83ff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca4f14d23735c6afefb76cbee18e1db6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gaca4f14d23735c6afefb76cbee18e1db6">uart_stop_bit_count_t</a> { <br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggaca4f14d23735c6afefb76cbee18e1db6a5a8829a108d8a46abb097a36cde051a7">kUART_OneStopBit</a> = 0x0U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#ggaca4f14d23735c6afefb76cbee18e1db6a9704b3ae3ee851acf324eb357f75ab56">kUART_TwoStopBit</a> = 0x1U
<br/>
 }</td></tr>
<tr class="memdesc:gaca4f14d23735c6afefb76cbee18e1db6"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART stop bit count.  <a href="group__uart__driver.html#gaca4f14d23735c6afefb76cbee18e1db6">More...</a><br/></td></tr>
<tr class="separator:gaca4f14d23735c6afefb76cbee18e1db6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga700f3cd8e3800273a1591307cab6311c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga700f3cd8e3800273a1591307cab6311c">_uart_interrupt_enable</a> </td></tr>
<tr class="memdesc:ga700f3cd8e3800273a1591307cab6311c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This structure contains the settings for all of the UART interrupt configurations.  <a href="group__uart__driver.html#ga700f3cd8e3800273a1591307cab6311c">More...</a><br/></td></tr>
<tr class="separator:ga700f3cd8e3800273a1591307cab6311c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga259a53f363288115306a45d08fc66eb8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga259a53f363288115306a45d08fc66eb8">_uart_flags</a> { <br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a309643dfba0c44efc0600c02af6eaebf">kUART_RxCharReadyFlag</a> = 0x0000000FU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a792f36da4b89b615ad2d20e05ccb4232">kUART_RxErrorFlag</a> = 0x0000000EU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a310a961508b63dfe3d8d996400ce410c">kUART_RxOverrunErrorFlag</a> = 0x0000000DU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a088d4fcbbbe8a99aebe86debca4a97c2">kUART_RxFrameErrorFlag</a> = 0x0000000CU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8af76e33f2ae98819b0fdb938a96a3c7e9">kUART_RxBreakDetectFlag</a> = 0x0000000BU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8aff287d5d8a910bd392c626f0b51a8ef0">kUART_RxParityErrorFlag</a> = 0x0000000AU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a0c92973ab1d527115fa01934c62a053d">kUART_ParityErrorFlag</a> = 0x0094000FU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8ac7e88bad028598aab3b9821b9a2e0267">kUART_RtsStatusFlag</a> = 0x0094000EU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a3913198655fd8ce2eb451d0550619d32">kUART_TxReadyFlag</a> = 0x0094000DU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8ab6a18a71d4711614848e0abfa114d48d">kUART_RtsDeltaFlag</a> = 0x0094000CU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a3446413cf0ba110c3f25e869ec723253">kUART_EscapeFlag</a> = 0x0094000BU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a869aae50c5c1970a098d17c8ce7b844c">kUART_FrameErrorFlag</a> = 0x0094000AU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a50a2cc679d220e394c538803af4e287e">kUART_RxReadyFlag</a> = 0x00940009U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a95a6f29cdead568e08951974a708a77f">kUART_AgingTimerFlag</a> = 0x00940008U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a58c55093c621cb30ff7db3dca0fb3fe9">kUART_DtrDeltaFlag</a> = 0x00940007U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8adab01f057c6ed194fa44d0efc64ae15c">kUART_RxDsFlag</a> = 0x00940006U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a18f1130c93e0cb2033841dc9686129a3">kUART_tAirWakeFlag</a> = 0x00940005U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8afec67475e7606d8612d8df8ba6273728">kUART_AwakeFlag</a> = 0x00940004U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a49554d7b7783b495061c5cfc579250f8">kUART_Rs485SlaveAddrMatchFlag</a> = 0x00940003U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a89cdd9c043992663c2072079684d1f33">kUART_AutoBaudFlag</a> = 0x0098000FU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a38300abd304436626e61b70f216f8865">kUART_TxEmptyFlag</a> = 0x0098000EU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a257bc03110bc5ebf9b2fbb50c144b320">kUART_DtrFlag</a> = 0x0098000DU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8aab7d8fe2ab1cd29f7e27ff59fc6cd44e">kUART_IdleFlag</a> = 0x0098000CU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8ad1ffb9b804eef7907a061b67672563ac">kUART_AutoBaudCntStopFlag</a> = 0x0098000BU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a2e0e3b65dd4ad1e0d9d4fc75802e6bd8">kUART_RiDeltaFlag</a> = 0x0098000AU, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a989877e611df5363fb1b9f2f35a10379">kUART_RiFlag</a> = 0x00980009U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a2d7ecd6806bd476eddb0c8a4f06f8409">kUART_IrFlag</a> = 0x00980008U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a8ca129e7898c036893bae13929525883">kUART_WakeFlag</a> = 0x00980007U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8adf5283f5c932378cac93919e7d5d77d8">kUART_DcdDeltaFlag</a> = 0x00980006U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a1c3d7335bce198659e94ae749044a565">kUART_DcdFlag</a> = 0x00980005U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a683ac4d5b01bbfeea1282293cd089da0">kUART_RtsFlag</a> = 0x00980004U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8af23b48cba192fcc511857cee4fd7cd3f">kUART_TxCompleteFlag</a> = 0x00980003U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8adb8b7904275137c75de5050adc1f2877">kUART_BreakDetectFlag</a> = 0x00980002U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a93d3c56466b4656dcce08d9323d7afd8">kUART_RxOverrunFlag</a> = 0x00980001U, 
<br/>
&#160;&#160;<a class="el" href="group__uart__driver.html#gga259a53f363288115306a45d08fc66eb8a5f68dab1ddbb31a54997e5e33534b7e0">kUART_RxDataReadyFlag</a> = 0x00980000U
<br/>
 }</td></tr>
<tr class="memdesc:ga259a53f363288115306a45d08fc66eb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART status flags.  <a href="group__uart__driver.html#ga259a53f363288115306a45d08fc66eb8">More...</a><br/></td></tr>
<tr class="separator:ga259a53f363288115306a45d08fc66eb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:gacc123668836f3432c54ee6a2f6f318f1"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gacc123668836f3432c54ee6a2f6f318f1">uart_config_t::baudRate_Bps</a></td></tr>
<tr class="memdesc:gacc123668836f3432c54ee6a2f6f318f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART baud rate.  <a href="#gacc123668836f3432c54ee6a2f6f318f1">More...</a><br/></td></tr>
<tr class="separator:gacc123668836f3432c54ee6a2f6f318f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a3abcf4f0f5d0a3893df14f2991aa39"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__uart__driver.html#ga436e5a7bdb5f24decb5bfb0c87a83ff4">uart_parity_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga1a3abcf4f0f5d0a3893df14f2991aa39">uart_config_t::parityMode</a></td></tr>
<tr class="memdesc:ga1a3abcf4f0f5d0a3893df14f2991aa39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parity error check mode of this module.  <a href="#ga1a3abcf4f0f5d0a3893df14f2991aa39">More...</a><br/></td></tr>
<tr class="separator:ga1a3abcf4f0f5d0a3893df14f2991aa39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa026642db643d8cae1a64869acd9baf5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa026642db643d8cae1a64869acd9baf5"></a>
<a class="el" href="group__uart__driver.html#gadc68b8fd9ded3990f84129df23fee798">uart_data_bits_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gaa026642db643d8cae1a64869acd9baf5">uart_config_t::dataBitsCount</a></td></tr>
<tr class="memdesc:gaa026642db643d8cae1a64869acd9baf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data bits count, eight (default), seven. <br/></td></tr>
<tr class="separator:gaa026642db643d8cae1a64869acd9baf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadf6e33c13910e9ec7c2688f83a462be0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__uart__driver.html#gaca4f14d23735c6afefb76cbee18e1db6">uart_stop_bit_count_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gadf6e33c13910e9ec7c2688f83a462be0">uart_config_t::stopBitCount</a></td></tr>
<tr class="memdesc:gadf6e33c13910e9ec7c2688f83a462be0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of stop bits in one frame.  <a href="#gadf6e33c13910e9ec7c2688f83a462be0">More...</a><br/></td></tr>
<tr class="separator:gadf6e33c13910e9ec7c2688f83a462be0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5eb9ab81752080bc726b8d625d2b6b21"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5eb9ab81752080bc726b8d625d2b6b21"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga5eb9ab81752080bc726b8d625d2b6b21">uart_config_t::txFifoWatermark</a></td></tr>
<tr class="memdesc:ga5eb9ab81752080bc726b8d625d2b6b21"><td class="mdescLeft">&#160;</td><td class="mdescRight">TX FIFO watermark. <br/></td></tr>
<tr class="separator:ga5eb9ab81752080bc726b8d625d2b6b21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1bb7b2f0f7df79977d33be264fb5163a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1bb7b2f0f7df79977d33be264fb5163a"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga1bb7b2f0f7df79977d33be264fb5163a">uart_config_t::rxFifoWatermark</a></td></tr>
<tr class="memdesc:ga1bb7b2f0f7df79977d33be264fb5163a"><td class="mdescLeft">&#160;</td><td class="mdescRight">RX FIFO watermark. <br/></td></tr>
<tr class="separator:ga1bb7b2f0f7df79977d33be264fb5163a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac595435b68632c2dbaece764c54cd41d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac595435b68632c2dbaece764c54cd41d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gac595435b68632c2dbaece764c54cd41d">uart_config_t::enableAutoBaudRate</a></td></tr>
<tr class="memdesc:gac595435b68632c2dbaece764c54cd41d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable automatic baud rate detection. <br/></td></tr>
<tr class="separator:gac595435b68632c2dbaece764c54cd41d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91d575902455699a312c64b564133a8d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga91d575902455699a312c64b564133a8d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga91d575902455699a312c64b564133a8d">uart_config_t::enableTx</a></td></tr>
<tr class="memdesc:ga91d575902455699a312c64b564133a8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable TX. <br/></td></tr>
<tr class="separator:ga91d575902455699a312c64b564133a8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa045acd340fc86d70a497f49e0a95bdd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa045acd340fc86d70a497f49e0a95bdd"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gaa045acd340fc86d70a497f49e0a95bdd">uart_config_t::enableRx</a></td></tr>
<tr class="memdesc:gaa045acd340fc86d70a497f49e0a95bdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable RX. <br/></td></tr>
<tr class="separator:gaa045acd340fc86d70a497f49e0a95bdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf91f05b0f951836e3002f60f0575f369"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gaf91f05b0f951836e3002f60f0575f369">uart_transfer_t::data</a></td></tr>
<tr class="memdesc:gaf91f05b0f951836e3002f60f0575f369"><td class="mdescLeft">&#160;</td><td class="mdescRight">The buffer of data to be transfer.  <a href="#gaf91f05b0f951836e3002f60f0575f369">More...</a><br/></td></tr>
<tr class="separator:gaf91f05b0f951836e3002f60f0575f369"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga21820f8294de0d75d863b72512a7c12f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga21820f8294de0d75d863b72512a7c12f">uart_transfer_t::dataSize</a></td></tr>
<tr class="memdesc:ga21820f8294de0d75d863b72512a7c12f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The byte count to be transfer.  <a href="#ga21820f8294de0d75d863b72512a7c12f">More...</a><br/></td></tr>
<tr class="separator:ga21820f8294de0d75d863b72512a7c12f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga046372eac11f58a16f519c0ee264ea9e"><td class="memItemLeft" align="right" valign="top">uint8_t *volatile&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga046372eac11f58a16f519c0ee264ea9e">uart_handle_t::txData</a></td></tr>
<tr class="memdesc:ga046372eac11f58a16f519c0ee264ea9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Address of remaining data to send.  <a href="#ga046372eac11f58a16f519c0ee264ea9e">More...</a><br/></td></tr>
<tr class="separator:ga046372eac11f58a16f519c0ee264ea9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1e67a92b463ad328646834ea0de4d70d"><td class="memItemLeft" align="right" valign="top">volatile size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga1e67a92b463ad328646834ea0de4d70d">uart_handle_t::txDataSize</a></td></tr>
<tr class="memdesc:ga1e67a92b463ad328646834ea0de4d70d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the remaining data to send.  <a href="#ga1e67a92b463ad328646834ea0de4d70d">More...</a><br/></td></tr>
<tr class="separator:ga1e67a92b463ad328646834ea0de4d70d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga80361474eb03b3aa30d02bda82adce65"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga80361474eb03b3aa30d02bda82adce65">uart_handle_t::txDataSizeAll</a></td></tr>
<tr class="memdesc:ga80361474eb03b3aa30d02bda82adce65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the data to send out.  <a href="#ga80361474eb03b3aa30d02bda82adce65">More...</a><br/></td></tr>
<tr class="separator:ga80361474eb03b3aa30d02bda82adce65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5c87354702502998d3ccca9d9bfd3069"><td class="memItemLeft" align="right" valign="top">uint8_t *volatile&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga5c87354702502998d3ccca9d9bfd3069">uart_handle_t::rxData</a></td></tr>
<tr class="memdesc:ga5c87354702502998d3ccca9d9bfd3069"><td class="mdescLeft">&#160;</td><td class="mdescRight">Address of remaining data to receive.  <a href="#ga5c87354702502998d3ccca9d9bfd3069">More...</a><br/></td></tr>
<tr class="separator:ga5c87354702502998d3ccca9d9bfd3069"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46bd84d885004806f89744ad79edd81e"><td class="memItemLeft" align="right" valign="top">volatile size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga46bd84d885004806f89744ad79edd81e">uart_handle_t::rxDataSize</a></td></tr>
<tr class="memdesc:ga46bd84d885004806f89744ad79edd81e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the remaining data to receive.  <a href="#ga46bd84d885004806f89744ad79edd81e">More...</a><br/></td></tr>
<tr class="separator:ga46bd84d885004806f89744ad79edd81e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga800a05d5ea3c6240daad46f466a8fea4"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga800a05d5ea3c6240daad46f466a8fea4">uart_handle_t::rxDataSizeAll</a></td></tr>
<tr class="memdesc:ga800a05d5ea3c6240daad46f466a8fea4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the data to receive.  <a href="#ga800a05d5ea3c6240daad46f466a8fea4">More...</a><br/></td></tr>
<tr class="separator:ga800a05d5ea3c6240daad46f466a8fea4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafeba8b549facc329937046e734681963"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gafeba8b549facc329937046e734681963">uart_handle_t::rxRingBuffer</a></td></tr>
<tr class="memdesc:gafeba8b549facc329937046e734681963"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start address of the receiver ring buffer.  <a href="#gafeba8b549facc329937046e734681963">More...</a><br/></td></tr>
<tr class="separator:gafeba8b549facc329937046e734681963"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d6afed4b64233c959a180b66686c14c"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga8d6afed4b64233c959a180b66686c14c">uart_handle_t::rxRingBufferSize</a></td></tr>
<tr class="memdesc:ga8d6afed4b64233c959a180b66686c14c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the ring buffer.  <a href="#ga8d6afed4b64233c959a180b66686c14c">More...</a><br/></td></tr>
<tr class="separator:ga8d6afed4b64233c959a180b66686c14c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga85d061606b31401fb4a9d0e22e77056c"><td class="memItemLeft" align="right" valign="top">volatile uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga85d061606b31401fb4a9d0e22e77056c">uart_handle_t::rxRingBufferHead</a></td></tr>
<tr class="memdesc:ga85d061606b31401fb4a9d0e22e77056c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Index for the driver to store received data into ring buffer.  <a href="#ga85d061606b31401fb4a9d0e22e77056c">More...</a><br/></td></tr>
<tr class="separator:ga85d061606b31401fb4a9d0e22e77056c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f4482059188bea2603b1c07cf9cc084"><td class="memItemLeft" align="right" valign="top">volatile uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga9f4482059188bea2603b1c07cf9cc084">uart_handle_t::rxRingBufferTail</a></td></tr>
<tr class="memdesc:ga9f4482059188bea2603b1c07cf9cc084"><td class="mdescLeft">&#160;</td><td class="mdescRight">Index for the user to get data from the ring buffer.  <a href="#ga9f4482059188bea2603b1c07cf9cc084">More...</a><br/></td></tr>
<tr class="separator:ga9f4482059188bea2603b1c07cf9cc084"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2ef9706e8203ba72fa1e04c48581fb0f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__uart__driver.html#gaf164fa4e12ff8a3e3f3997512001e007">uart_transfer_callback_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga2ef9706e8203ba72fa1e04c48581fb0f">uart_handle_t::callback</a></td></tr>
<tr class="memdesc:ga2ef9706e8203ba72fa1e04c48581fb0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function.  <a href="#ga2ef9706e8203ba72fa1e04c48581fb0f">More...</a><br/></td></tr>
<tr class="separator:ga2ef9706e8203ba72fa1e04c48581fb0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga69ce1fdb7a2f60c0ecc94c4d1b2ed6ff"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga69ce1fdb7a2f60c0ecc94c4d1b2ed6ff">uart_handle_t::userData</a></td></tr>
<tr class="memdesc:ga69ce1fdb7a2f60c0ecc94c4d1b2ed6ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART callback function parameter.  <a href="#ga69ce1fdb7a2f60c0ecc94c4d1b2ed6ff">More...</a><br/></td></tr>
<tr class="separator:ga69ce1fdb7a2f60c0ecc94c4d1b2ed6ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9fa8f119b6e0e3a7805fb25edafb1498"><td class="memItemLeft" align="right" valign="top">volatile uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga9fa8f119b6e0e3a7805fb25edafb1498">uart_handle_t::txState</a></td></tr>
<tr class="memdesc:ga9fa8f119b6e0e3a7805fb25edafb1498"><td class="mdescLeft">&#160;</td><td class="mdescRight">TX transfer state.  <a href="#ga9fa8f119b6e0e3a7805fb25edafb1498">More...</a><br/></td></tr>
<tr class="separator:ga9fa8f119b6e0e3a7805fb25edafb1498"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5aa95f3d2cb81a8bb01a11ab2cf66234"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5aa95f3d2cb81a8bb01a11ab2cf66234"></a>
volatile uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga5aa95f3d2cb81a8bb01a11ab2cf66234">uart_handle_t::rxState</a></td></tr>
<tr class="memdesc:ga5aa95f3d2cb81a8bb01a11ab2cf66234"><td class="mdescLeft">&#160;</td><td class="mdescRight">RX transfer state. <br/></td></tr>
<tr class="separator:ga5aa95f3d2cb81a8bb01a11ab2cf66234"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Driver version</h2></td></tr>
<tr class="memitem:ga89f9649bfe350eb7b1e53146f35d3de5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga89f9649bfe350eb7b1e53146f35d3de5">FSL_UART_DRIVER_VERSION</a>&#160;&#160;&#160;(MAKE_VERSION(2, 0, 0))</td></tr>
<tr class="memdesc:ga89f9649bfe350eb7b1e53146f35d3de5"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART driver version 2.0.0.  <a href="#ga89f9649bfe350eb7b1e53146f35d3de5">More...</a><br/></td></tr>
<tr class="separator:ga89f9649bfe350eb7b1e53146f35d3de5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Software Reset</h2></td></tr>
<tr class="memitem:gada461a15fc0fd6fdbaaf35263da9af89"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gada461a15fc0fd6fdbaaf35263da9af89">UART_SoftwareReset</a> (UART_Type *base)</td></tr>
<tr class="memdesc:gada461a15fc0fd6fdbaaf35263da9af89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the UART using software.  <a href="#gada461a15fc0fd6fdbaaf35263da9af89">More...</a><br/></td></tr>
<tr class="separator:gada461a15fc0fd6fdbaaf35263da9af89"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Initialization and deinitialization</h2></td></tr>
<tr class="memitem:gab5965a8e11f7e1d4d531141291fd5288"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gab5965a8e11f7e1d4d531141291fd5288">UART_Init</a> (UART_Type *base, const <a class="el" href="group__uart__driver.html#structuart__config__t">uart_config_t</a> *config, uint32_t srcClock_Hz)</td></tr>
<tr class="memdesc:gab5965a8e11f7e1d4d531141291fd5288"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes an UART instance with the user configuration structure and the peripheral clock.  <a href="#gab5965a8e11f7e1d4d531141291fd5288">More...</a><br/></td></tr>
<tr class="separator:gab5965a8e11f7e1d4d531141291fd5288"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3ff48bc211831be33e6fe5c50eb671a0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga3ff48bc211831be33e6fe5c50eb671a0">UART_Deinit</a> (UART_Type *base)</td></tr>
<tr class="memdesc:ga3ff48bc211831be33e6fe5c50eb671a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinitializes a UART instance.  <a href="#ga3ff48bc211831be33e6fe5c50eb671a0">More...</a><br/></td></tr>
<tr class="separator:ga3ff48bc211831be33e6fe5c50eb671a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga47c7c09e04a0497f4530d553e27d96c5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga47c7c09e04a0497f4530d553e27d96c5">UART_GetDefaultConfig</a> (<a class="el" href="group__uart__driver.html#structuart__config__t">uart_config_t</a> *config)</td></tr>
<tr class="memdesc:ga47c7c09e04a0497f4530d553e27d96c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">l  <a href="#ga47c7c09e04a0497f4530d553e27d96c5">More...</a><br/></td></tr>
<tr class="separator:ga47c7c09e04a0497f4530d553e27d96c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab3ba5019c11f288cc4f545dd656b6284"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gab3ba5019c11f288cc4f545dd656b6284">UART_SetBaudRate</a> (UART_Type *base, uint32_t baudRate_Bps, uint32_t srcClock_Hz)</td></tr>
<tr class="memdesc:gab3ba5019c11f288cc4f545dd656b6284"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the UART instance baud rate.  <a href="#gab3ba5019c11f288cc4f545dd656b6284">More...</a><br/></td></tr>
<tr class="separator:gab3ba5019c11f288cc4f545dd656b6284"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae1c2de08deac42b1fe8675bba9ece467"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gae1c2de08deac42b1fe8675bba9ece467">UART_Enable</a> (UART_Type *base)</td></tr>
<tr class="memdesc:gae1c2de08deac42b1fe8675bba9ece467"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to Enable the UART Module.  <a href="#gae1c2de08deac42b1fe8675bba9ece467">More...</a><br/></td></tr>
<tr class="separator:gae1c2de08deac42b1fe8675bba9ece467"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b6fdc3af78f9d5e8a1f8f6a07ce124d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga4b6fdc3af78f9d5e8a1f8f6a07ce124d">UART_Disable</a> (UART_Type *base)</td></tr>
<tr class="memdesc:ga4b6fdc3af78f9d5e8a1f8f6a07ce124d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to Disable the UART Module.  <a href="#ga4b6fdc3af78f9d5e8a1f8f6a07ce124d">More...</a><br/></td></tr>
<tr class="separator:ga4b6fdc3af78f9d5e8a1f8f6a07ce124d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Status</h2></td></tr>
<tr class="memitem:ga5a6ca92e153c2a2c1323c5dc2fae6ab4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga5a6ca92e153c2a2c1323c5dc2fae6ab4">UART_GetStatusFlag</a> (UART_Type *base, uint32_t flag)</td></tr>
<tr class="memdesc:ga5a6ca92e153c2a2c1323c5dc2fae6ab4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to get the current status of specific UART status flag(including interrupt flag).  <a href="#ga5a6ca92e153c2a2c1323c5dc2fae6ab4">More...</a><br/></td></tr>
<tr class="separator:ga5a6ca92e153c2a2c1323c5dc2fae6ab4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf547a539e6d7540010ef688e51bc2eeb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gaf547a539e6d7540010ef688e51bc2eeb">UART_ClearStatusFlag</a> (UART_Type *base, uint32_t flag)</td></tr>
<tr class="memdesc:gaf547a539e6d7540010ef688e51bc2eeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to clear the current status of specific UART status flag.  <a href="#gaf547a539e6d7540010ef688e51bc2eeb">More...</a><br/></td></tr>
<tr class="separator:gaf547a539e6d7540010ef688e51bc2eeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Interrupts</h2></td></tr>
<tr class="memitem:ga49ecd761481a22956e3f46285038719c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga49ecd761481a22956e3f46285038719c">UART_EnableInterrupts</a> (UART_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga49ecd761481a22956e3f46285038719c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables UART interrupts according to the provided mask.  <a href="#ga49ecd761481a22956e3f46285038719c">More...</a><br/></td></tr>
<tr class="separator:ga49ecd761481a22956e3f46285038719c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f24b6b9b730046a9a81918f9abe7d99"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga3f24b6b9b730046a9a81918f9abe7d99">UART_DisableInterrupts</a> (UART_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga3f24b6b9b730046a9a81918f9abe7d99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the UART interrupts according to the provided mask.  <a href="#ga3f24b6b9b730046a9a81918f9abe7d99">More...</a><br/></td></tr>
<tr class="separator:ga3f24b6b9b730046a9a81918f9abe7d99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga79bc0b880286ec0dc0543606fc772912"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga79bc0b880286ec0dc0543606fc772912">UART_GetEnabledInterrupts</a> (UART_Type *base)</td></tr>
<tr class="memdesc:ga79bc0b880286ec0dc0543606fc772912"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets enabled UART interrupts.  <a href="#ga79bc0b880286ec0dc0543606fc772912">More...</a><br/></td></tr>
<tr class="separator:ga79bc0b880286ec0dc0543606fc772912"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Bus Operations</h2></td></tr>
<tr class="memitem:gaf2ed68f3dd6ee8a272e9afd8ebd84f93"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gaf2ed68f3dd6ee8a272e9afd8ebd84f93">UART_EnableTx</a> (UART_Type *base, bool enable)</td></tr>
<tr class="memdesc:gaf2ed68f3dd6ee8a272e9afd8ebd84f93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the UART transmitter.  <a href="#gaf2ed68f3dd6ee8a272e9afd8ebd84f93">More...</a><br/></td></tr>
<tr class="separator:gaf2ed68f3dd6ee8a272e9afd8ebd84f93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa503e36c8ce82f1042ce186b9863871f"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gaa503e36c8ce82f1042ce186b9863871f">UART_EnableRx</a> (UART_Type *base, bool enable)</td></tr>
<tr class="memdesc:gaa503e36c8ce82f1042ce186b9863871f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the UART receiver.  <a href="#gaa503e36c8ce82f1042ce186b9863871f">More...</a><br/></td></tr>
<tr class="separator:gaa503e36c8ce82f1042ce186b9863871f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga371d2ceda535de3a74beba5a3465fab0"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga371d2ceda535de3a74beba5a3465fab0">UART_WriteByte</a> (UART_Type *base, uint8_t data)</td></tr>
<tr class="memdesc:ga371d2ceda535de3a74beba5a3465fab0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes to the transmitter register.  <a href="#ga371d2ceda535de3a74beba5a3465fab0">More...</a><br/></td></tr>
<tr class="separator:ga371d2ceda535de3a74beba5a3465fab0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3728011ac7906f3e03bb677b0f9cf7b4"><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga3728011ac7906f3e03bb677b0f9cf7b4">UART_ReadByte</a> (UART_Type *base)</td></tr>
<tr class="memdesc:ga3728011ac7906f3e03bb677b0f9cf7b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the receiver register.  <a href="#ga3728011ac7906f3e03bb677b0f9cf7b4">More...</a><br/></td></tr>
<tr class="separator:ga3728011ac7906f3e03bb677b0f9cf7b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad67794d80b7ee2d3292b41af6ff1e100"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gad67794d80b7ee2d3292b41af6ff1e100">UART_WriteBlocking</a> (UART_Type *base, const uint8_t *data, size_t length)</td></tr>
<tr class="memdesc:gad67794d80b7ee2d3292b41af6ff1e100"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes to the TX register using a blocking method.  <a href="#gad67794d80b7ee2d3292b41af6ff1e100">More...</a><br/></td></tr>
<tr class="separator:gad67794d80b7ee2d3292b41af6ff1e100"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga39d59e8a94f1af451a0db81888596639"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga39d59e8a94f1af451a0db81888596639">UART_ReadBlocking</a> (UART_Type *base, uint8_t *data, size_t length)</td></tr>
<tr class="memdesc:ga39d59e8a94f1af451a0db81888596639"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read RX data register using a blocking method.  <a href="#ga39d59e8a94f1af451a0db81888596639">More...</a><br/></td></tr>
<tr class="separator:ga39d59e8a94f1af451a0db81888596639"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Transactional</h2></td></tr>
<tr class="memitem:ga63db308c32019b7dd6c0647d618e5247"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga63db308c32019b7dd6c0647d618e5247">UART_TransferCreateHandle</a> (UART_Type *base, uart_handle_t *handle, <a class="el" href="group__uart__driver.html#gaf164fa4e12ff8a3e3f3997512001e007">uart_transfer_callback_t</a> callback, void *userData)</td></tr>
<tr class="memdesc:ga63db308c32019b7dd6c0647d618e5247"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the UART handle.  <a href="#ga63db308c32019b7dd6c0647d618e5247">More...</a><br/></td></tr>
<tr class="separator:ga63db308c32019b7dd6c0647d618e5247"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga223fba584bfabd599629d5ce92f929ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga223fba584bfabd599629d5ce92f929ac">UART_TransferStartRingBuffer</a> (UART_Type *base, uart_handle_t *handle, uint8_t *ringBuffer, size_t ringBufferSize)</td></tr>
<tr class="memdesc:ga223fba584bfabd599629d5ce92f929ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets up the RX ring buffer.  <a href="#ga223fba584bfabd599629d5ce92f929ac">More...</a><br/></td></tr>
<tr class="separator:ga223fba584bfabd599629d5ce92f929ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0c0bc73df49cb31dff0e903630314f5b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga0c0bc73df49cb31dff0e903630314f5b">UART_TransferStopRingBuffer</a> (UART_Type *base, uart_handle_t *handle)</td></tr>
<tr class="memdesc:ga0c0bc73df49cb31dff0e903630314f5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aborts the background transfer and uninstalls the ring buffer.  <a href="#ga0c0bc73df49cb31dff0e903630314f5b">More...</a><br/></td></tr>
<tr class="separator:ga0c0bc73df49cb31dff0e903630314f5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3921aa660977ca77dadf95fa35f1c3a9"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga3921aa660977ca77dadf95fa35f1c3a9">UART_TransferGetRxRingBufferLength</a> (uart_handle_t *handle)</td></tr>
<tr class="memdesc:ga3921aa660977ca77dadf95fa35f1c3a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the length of received data in RX ring buffer.  <a href="#ga3921aa660977ca77dadf95fa35f1c3a9">More...</a><br/></td></tr>
<tr class="separator:ga3921aa660977ca77dadf95fa35f1c3a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad89afd7db1656c5aef404bb285d0dc05"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gad89afd7db1656c5aef404bb285d0dc05">UART_TransferSendNonBlocking</a> (UART_Type *base, uart_handle_t *handle, <a class="el" href="group__uart__driver.html#structuart__transfer__t">uart_transfer_t</a> *xfer)</td></tr>
<tr class="memdesc:gad89afd7db1656c5aef404bb285d0dc05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmits a buffer of data using the interrupt method.  <a href="#gad89afd7db1656c5aef404bb285d0dc05">More...</a><br/></td></tr>
<tr class="separator:gad89afd7db1656c5aef404bb285d0dc05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa64f9f89d8286fd3ef0736a8c40be2c2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gaa64f9f89d8286fd3ef0736a8c40be2c2">UART_TransferAbortSend</a> (UART_Type *base, uart_handle_t *handle)</td></tr>
<tr class="memdesc:gaa64f9f89d8286fd3ef0736a8c40be2c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aborts the interrupt-driven data transmit.  <a href="#gaa64f9f89d8286fd3ef0736a8c40be2c2">More...</a><br/></td></tr>
<tr class="separator:gaa64f9f89d8286fd3ef0736a8c40be2c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga071727ba05b2937ef5ad641ca7faf9c7"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga071727ba05b2937ef5ad641ca7faf9c7">UART_TransferGetSendCount</a> (UART_Type *base, uart_handle_t *handle, uint32_t *count)</td></tr>
<tr class="memdesc:ga071727ba05b2937ef5ad641ca7faf9c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of bytes written to the UART TX register.  <a href="#ga071727ba05b2937ef5ad641ca7faf9c7">More...</a><br/></td></tr>
<tr class="separator:ga071727ba05b2937ef5ad641ca7faf9c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf804acde5d73ce0a5bf54b06195e1218"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gaf804acde5d73ce0a5bf54b06195e1218">UART_TransferReceiveNonBlocking</a> (UART_Type *base, uart_handle_t *handle, <a class="el" href="group__uart__driver.html#structuart__transfer__t">uart_transfer_t</a> *xfer, size_t *receivedBytes)</td></tr>
<tr class="memdesc:gaf804acde5d73ce0a5bf54b06195e1218"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receives a buffer of data using an interrupt method.  <a href="#gaf804acde5d73ce0a5bf54b06195e1218">More...</a><br/></td></tr>
<tr class="separator:gaf804acde5d73ce0a5bf54b06195e1218"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacc35671622b2401545cc55cc6ae572d4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gacc35671622b2401545cc55cc6ae572d4">UART_TransferAbortReceive</a> (UART_Type *base, uart_handle_t *handle)</td></tr>
<tr class="memdesc:gacc35671622b2401545cc55cc6ae572d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aborts the interrupt-driven data receiving.  <a href="#gacc35671622b2401545cc55cc6ae572d4">More...</a><br/></td></tr>
<tr class="separator:gacc35671622b2401545cc55cc6ae572d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga05df10f570cdca4ac2dff63b069d254e"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga05df10f570cdca4ac2dff63b069d254e">UART_TransferGetReceiveCount</a> (UART_Type *base, uart_handle_t *handle, uint32_t *count)</td></tr>
<tr class="memdesc:ga05df10f570cdca4ac2dff63b069d254e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of bytes that have been received.  <a href="#ga05df10f570cdca4ac2dff63b069d254e">More...</a><br/></td></tr>
<tr class="separator:ga05df10f570cdca4ac2dff63b069d254e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb0c4f1e5b59db3aa2261df4f5ddb48d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gadb0c4f1e5b59db3aa2261df4f5ddb48d">UART_TransferHandleIRQ</a> (UART_Type *base, uart_handle_t *handle)</td></tr>
<tr class="memdesc:gadb0c4f1e5b59db3aa2261df4f5ddb48d"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART IRQ handle function.  <a href="#gadb0c4f1e5b59db3aa2261df4f5ddb48d">More...</a><br/></td></tr>
<tr class="separator:gadb0c4f1e5b59db3aa2261df4f5ddb48d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
DMA control functions.</h2></td></tr>
<tr class="memitem:ga93a5d80d9f8ec9e61eb54db18efa5c63"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga93a5d80d9f8ec9e61eb54db18efa5c63">UART_EnableTxDMA</a> (UART_Type *base, bool enable)</td></tr>
<tr class="memdesc:ga93a5d80d9f8ec9e61eb54db18efa5c63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the UART transmitter DMA request.  <a href="#ga93a5d80d9f8ec9e61eb54db18efa5c63">More...</a><br/></td></tr>
<tr class="separator:ga93a5d80d9f8ec9e61eb54db18efa5c63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga32e14856ac77e50800e733ba8ab9c448"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga32e14856ac77e50800e733ba8ab9c448">UART_EnableRxDMA</a> (UART_Type *base, bool enable)</td></tr>
<tr class="memdesc:ga32e14856ac77e50800e733ba8ab9c448"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the UART receiver DMA request.  <a href="#ga32e14856ac77e50800e733ba8ab9c448">More...</a><br/></td></tr>
<tr class="separator:ga32e14856ac77e50800e733ba8ab9c448"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
FIFO control functions.</h2></td></tr>
<tr class="memitem:ga5ed56b76143c42e6e712d1a4d6a1fbdd"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga5ed56b76143c42e6e712d1a4d6a1fbdd">UART_SetTxFifoWatermark</a> (UART_Type *base, uint8_t watermark)</td></tr>
<tr class="memdesc:ga5ed56b76143c42e6e712d1a4d6a1fbdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to set the watermark of UART Tx FIFO.  <a href="#ga5ed56b76143c42e6e712d1a4d6a1fbdd">More...</a><br/></td></tr>
<tr class="separator:ga5ed56b76143c42e6e712d1a4d6a1fbdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9fc461e2d9a906a2b5aa1363ab06044c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga9fc461e2d9a906a2b5aa1363ab06044c">UART_SetRxFifoWatermark</a> (UART_Type *base, uint8_t watermark)</td></tr>
<tr class="memdesc:ga9fc461e2d9a906a2b5aa1363ab06044c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to set the watermark of UART Rx FIFO.  <a href="#ga9fc461e2d9a906a2b5aa1363ab06044c">More...</a><br/></td></tr>
<tr class="separator:ga9fc461e2d9a906a2b5aa1363ab06044c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Auto baud rate detection.</h2></td></tr>
<tr class="memitem:gac88019d2b8abe60bd6ee8cf2c1e8dfb0"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gac88019d2b8abe60bd6ee8cf2c1e8dfb0">UART_EnableAutoBaudRate</a> (UART_Type *base, bool enable)</td></tr>
<tr class="memdesc:gac88019d2b8abe60bd6ee8cf2c1e8dfb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to set the enable condition of Automatic Baud Rate Detection feature.  <a href="#gac88019d2b8abe60bd6ee8cf2c1e8dfb0">More...</a><br/></td></tr>
<tr class="separator:gac88019d2b8abe60bd6ee8cf2c1e8dfb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga28850ab8c31bd095fde407992b937035"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga28850ab8c31bd095fde407992b937035">UART_IsAutoBaudRateComplete</a> (UART_Type *base)</td></tr>
<tr class="memdesc:ga28850ab8c31bd095fde407992b937035"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to read if the automatic baud rate detection has finished.  <a href="#ga28850ab8c31bd095fde407992b937035">More...</a><br/></td></tr>
<tr class="separator:ga28850ab8c31bd095fde407992b937035"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structuart__config__t" id="structuart__config__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct uart_config_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:gacc123668836f3432c54ee6a2f6f318f1"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gacc123668836f3432c54ee6a2f6f318f1">baudRate_Bps</a></td></tr>
<tr class="memdesc:gacc123668836f3432c54ee6a2f6f318f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART baud rate.  <a href="group__uart__driver.html#gacc123668836f3432c54ee6a2f6f318f1">More...</a><br/></td></tr>
<tr class="separator:gacc123668836f3432c54ee6a2f6f318f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a3abcf4f0f5d0a3893df14f2991aa39"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__uart__driver.html#ga436e5a7bdb5f24decb5bfb0c87a83ff4">uart_parity_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga1a3abcf4f0f5d0a3893df14f2991aa39">parityMode</a></td></tr>
<tr class="memdesc:ga1a3abcf4f0f5d0a3893df14f2991aa39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parity error check mode of this module.  <a href="group__uart__driver.html#ga1a3abcf4f0f5d0a3893df14f2991aa39">More...</a><br/></td></tr>
<tr class="separator:ga1a3abcf4f0f5d0a3893df14f2991aa39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa026642db643d8cae1a64869acd9baf5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa026642db643d8cae1a64869acd9baf5"></a>
<a class="el" href="group__uart__driver.html#gadc68b8fd9ded3990f84129df23fee798">uart_data_bits_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gaa026642db643d8cae1a64869acd9baf5">dataBitsCount</a></td></tr>
<tr class="memdesc:gaa026642db643d8cae1a64869acd9baf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data bits count, eight (default), seven. <br/></td></tr>
<tr class="separator:gaa026642db643d8cae1a64869acd9baf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadf6e33c13910e9ec7c2688f83a462be0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__uart__driver.html#gaca4f14d23735c6afefb76cbee18e1db6">uart_stop_bit_count_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gadf6e33c13910e9ec7c2688f83a462be0">stopBitCount</a></td></tr>
<tr class="memdesc:gadf6e33c13910e9ec7c2688f83a462be0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of stop bits in one frame.  <a href="group__uart__driver.html#gadf6e33c13910e9ec7c2688f83a462be0">More...</a><br/></td></tr>
<tr class="separator:gadf6e33c13910e9ec7c2688f83a462be0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5eb9ab81752080bc726b8d625d2b6b21"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5eb9ab81752080bc726b8d625d2b6b21"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga5eb9ab81752080bc726b8d625d2b6b21">txFifoWatermark</a></td></tr>
<tr class="memdesc:ga5eb9ab81752080bc726b8d625d2b6b21"><td class="mdescLeft">&#160;</td><td class="mdescRight">TX FIFO watermark. <br/></td></tr>
<tr class="separator:ga5eb9ab81752080bc726b8d625d2b6b21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1bb7b2f0f7df79977d33be264fb5163a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1bb7b2f0f7df79977d33be264fb5163a"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga1bb7b2f0f7df79977d33be264fb5163a">rxFifoWatermark</a></td></tr>
<tr class="memdesc:ga1bb7b2f0f7df79977d33be264fb5163a"><td class="mdescLeft">&#160;</td><td class="mdescRight">RX FIFO watermark. <br/></td></tr>
<tr class="separator:ga1bb7b2f0f7df79977d33be264fb5163a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac595435b68632c2dbaece764c54cd41d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac595435b68632c2dbaece764c54cd41d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gac595435b68632c2dbaece764c54cd41d">enableAutoBaudRate</a></td></tr>
<tr class="memdesc:gac595435b68632c2dbaece764c54cd41d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable automatic baud rate detection. <br/></td></tr>
<tr class="separator:gac595435b68632c2dbaece764c54cd41d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91d575902455699a312c64b564133a8d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga91d575902455699a312c64b564133a8d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga91d575902455699a312c64b564133a8d">enableTx</a></td></tr>
<tr class="memdesc:ga91d575902455699a312c64b564133a8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable TX. <br/></td></tr>
<tr class="separator:ga91d575902455699a312c64b564133a8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa045acd340fc86d70a497f49e0a95bdd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa045acd340fc86d70a497f49e0a95bdd"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gaa045acd340fc86d70a497f49e0a95bdd">enableRx</a></td></tr>
<tr class="memdesc:gaa045acd340fc86d70a497f49e0a95bdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable RX. <br/></td></tr>
<tr class="separator:gaa045acd340fc86d70a497f49e0a95bdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>

</div>
</div>
<a name="structuart__transfer__t" id="structuart__transfer__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct uart_transfer_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:gaf91f05b0f951836e3002f60f0575f369"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gaf91f05b0f951836e3002f60f0575f369">data</a></td></tr>
<tr class="memdesc:gaf91f05b0f951836e3002f60f0575f369"><td class="mdescLeft">&#160;</td><td class="mdescRight">The buffer of data to be transfer.  <a href="group__uart__driver.html#gaf91f05b0f951836e3002f60f0575f369">More...</a><br/></td></tr>
<tr class="separator:gaf91f05b0f951836e3002f60f0575f369"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga21820f8294de0d75d863b72512a7c12f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga21820f8294de0d75d863b72512a7c12f">dataSize</a></td></tr>
<tr class="memdesc:ga21820f8294de0d75d863b72512a7c12f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The byte count to be transfer.  <a href="group__uart__driver.html#ga21820f8294de0d75d863b72512a7c12f">More...</a><br/></td></tr>
<tr class="separator:ga21820f8294de0d75d863b72512a7c12f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>

</div>
</div>
<a name="struct__uart__handle" id="struct__uart__handle"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct _uart_handle</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:ga046372eac11f58a16f519c0ee264ea9e"><td class="memItemLeft" align="right" valign="top">uint8_t *volatile&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga046372eac11f58a16f519c0ee264ea9e">txData</a></td></tr>
<tr class="memdesc:ga046372eac11f58a16f519c0ee264ea9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Address of remaining data to send.  <a href="group__uart__driver.html#ga046372eac11f58a16f519c0ee264ea9e">More...</a><br/></td></tr>
<tr class="separator:ga046372eac11f58a16f519c0ee264ea9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1e67a92b463ad328646834ea0de4d70d"><td class="memItemLeft" align="right" valign="top">volatile size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga1e67a92b463ad328646834ea0de4d70d">txDataSize</a></td></tr>
<tr class="memdesc:ga1e67a92b463ad328646834ea0de4d70d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the remaining data to send.  <a href="group__uart__driver.html#ga1e67a92b463ad328646834ea0de4d70d">More...</a><br/></td></tr>
<tr class="separator:ga1e67a92b463ad328646834ea0de4d70d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga80361474eb03b3aa30d02bda82adce65"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga80361474eb03b3aa30d02bda82adce65">txDataSizeAll</a></td></tr>
<tr class="memdesc:ga80361474eb03b3aa30d02bda82adce65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the data to send out.  <a href="group__uart__driver.html#ga80361474eb03b3aa30d02bda82adce65">More...</a><br/></td></tr>
<tr class="separator:ga80361474eb03b3aa30d02bda82adce65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5c87354702502998d3ccca9d9bfd3069"><td class="memItemLeft" align="right" valign="top">uint8_t *volatile&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga5c87354702502998d3ccca9d9bfd3069">rxData</a></td></tr>
<tr class="memdesc:ga5c87354702502998d3ccca9d9bfd3069"><td class="mdescLeft">&#160;</td><td class="mdescRight">Address of remaining data to receive.  <a href="group__uart__driver.html#ga5c87354702502998d3ccca9d9bfd3069">More...</a><br/></td></tr>
<tr class="separator:ga5c87354702502998d3ccca9d9bfd3069"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46bd84d885004806f89744ad79edd81e"><td class="memItemLeft" align="right" valign="top">volatile size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga46bd84d885004806f89744ad79edd81e">rxDataSize</a></td></tr>
<tr class="memdesc:ga46bd84d885004806f89744ad79edd81e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the remaining data to receive.  <a href="group__uart__driver.html#ga46bd84d885004806f89744ad79edd81e">More...</a><br/></td></tr>
<tr class="separator:ga46bd84d885004806f89744ad79edd81e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga800a05d5ea3c6240daad46f466a8fea4"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga800a05d5ea3c6240daad46f466a8fea4">rxDataSizeAll</a></td></tr>
<tr class="memdesc:ga800a05d5ea3c6240daad46f466a8fea4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the data to receive.  <a href="group__uart__driver.html#ga800a05d5ea3c6240daad46f466a8fea4">More...</a><br/></td></tr>
<tr class="separator:ga800a05d5ea3c6240daad46f466a8fea4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafeba8b549facc329937046e734681963"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#gafeba8b549facc329937046e734681963">rxRingBuffer</a></td></tr>
<tr class="memdesc:gafeba8b549facc329937046e734681963"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start address of the receiver ring buffer.  <a href="group__uart__driver.html#gafeba8b549facc329937046e734681963">More...</a><br/></td></tr>
<tr class="separator:gafeba8b549facc329937046e734681963"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d6afed4b64233c959a180b66686c14c"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga8d6afed4b64233c959a180b66686c14c">rxRingBufferSize</a></td></tr>
<tr class="memdesc:ga8d6afed4b64233c959a180b66686c14c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the ring buffer.  <a href="group__uart__driver.html#ga8d6afed4b64233c959a180b66686c14c">More...</a><br/></td></tr>
<tr class="separator:ga8d6afed4b64233c959a180b66686c14c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga85d061606b31401fb4a9d0e22e77056c"><td class="memItemLeft" align="right" valign="top">volatile uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga85d061606b31401fb4a9d0e22e77056c">rxRingBufferHead</a></td></tr>
<tr class="memdesc:ga85d061606b31401fb4a9d0e22e77056c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Index for the driver to store received data into ring buffer.  <a href="group__uart__driver.html#ga85d061606b31401fb4a9d0e22e77056c">More...</a><br/></td></tr>
<tr class="separator:ga85d061606b31401fb4a9d0e22e77056c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f4482059188bea2603b1c07cf9cc084"><td class="memItemLeft" align="right" valign="top">volatile uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga9f4482059188bea2603b1c07cf9cc084">rxRingBufferTail</a></td></tr>
<tr class="memdesc:ga9f4482059188bea2603b1c07cf9cc084"><td class="mdescLeft">&#160;</td><td class="mdescRight">Index for the user to get data from the ring buffer.  <a href="group__uart__driver.html#ga9f4482059188bea2603b1c07cf9cc084">More...</a><br/></td></tr>
<tr class="separator:ga9f4482059188bea2603b1c07cf9cc084"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2ef9706e8203ba72fa1e04c48581fb0f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__uart__driver.html#gaf164fa4e12ff8a3e3f3997512001e007">uart_transfer_callback_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga2ef9706e8203ba72fa1e04c48581fb0f">callback</a></td></tr>
<tr class="memdesc:ga2ef9706e8203ba72fa1e04c48581fb0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function.  <a href="group__uart__driver.html#ga2ef9706e8203ba72fa1e04c48581fb0f">More...</a><br/></td></tr>
<tr class="separator:ga2ef9706e8203ba72fa1e04c48581fb0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga69ce1fdb7a2f60c0ecc94c4d1b2ed6ff"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga69ce1fdb7a2f60c0ecc94c4d1b2ed6ff">userData</a></td></tr>
<tr class="memdesc:ga69ce1fdb7a2f60c0ecc94c4d1b2ed6ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART callback function parameter.  <a href="group__uart__driver.html#ga69ce1fdb7a2f60c0ecc94c4d1b2ed6ff">More...</a><br/></td></tr>
<tr class="separator:ga69ce1fdb7a2f60c0ecc94c4d1b2ed6ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9fa8f119b6e0e3a7805fb25edafb1498"><td class="memItemLeft" align="right" valign="top">volatile uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga9fa8f119b6e0e3a7805fb25edafb1498">txState</a></td></tr>
<tr class="memdesc:ga9fa8f119b6e0e3a7805fb25edafb1498"><td class="mdescLeft">&#160;</td><td class="mdescRight">TX transfer state.  <a href="group__uart__driver.html#ga9fa8f119b6e0e3a7805fb25edafb1498">More...</a><br/></td></tr>
<tr class="separator:ga9fa8f119b6e0e3a7805fb25edafb1498"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5aa95f3d2cb81a8bb01a11ab2cf66234"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5aa95f3d2cb81a8bb01a11ab2cf66234"></a>
volatile uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__driver.html#ga5aa95f3d2cb81a8bb01a11ab2cf66234">rxState</a></td></tr>
<tr class="memdesc:ga5aa95f3d2cb81a8bb01a11ab2cf66234"><td class="mdescLeft">&#160;</td><td class="mdescRight">RX transfer state. <br/></td></tr>
<tr class="separator:ga5aa95f3d2cb81a8bb01a11ab2cf66234"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga89f9649bfe350eb7b1e53146f35d3de5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FSL_UART_DRIVER_VERSION&#160;&#160;&#160;(MAKE_VERSION(2, 0, 0))</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gaf164fa4e12ff8a3e3f3997512001e007"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* uart_transfer_callback_t)(UART_Type *base, uart_handle_t *handle, status_t status, void *userData)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="gacef40dc8e8ac174bfe40ebcbc980f84b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__uart__driver.html#gacef40dc8e8ac174bfe40ebcbc980f84b">_uart_status</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84ba19ddee4fe5963467600028b78fb468e7"></a>kStatus_UART_TxBusy</em>&nbsp;</td><td class="fielddoc">
<p>Transmitter is busy. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84ba68cf23f981c4b85f82291163fbb2a5e6"></a>kStatus_UART_RxBusy</em>&nbsp;</td><td class="fielddoc">
<p>Receiver is busy. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84baf36c829b1b889517bf775c0d7ce29fa6"></a>kStatus_UART_TxIdle</em>&nbsp;</td><td class="fielddoc">
<p>UART transmitter is idle. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84bae0877b14627ed2aa8ddb2bf5b033f407"></a>kStatus_UART_RxIdle</em>&nbsp;</td><td class="fielddoc">
<p>UART receiver is idle. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84ba765913f003819ed87b861d187bf79ab8"></a>kStatus_UART_TxWatermarkTooLarge</em>&nbsp;</td><td class="fielddoc">
<p>TX FIFO watermark too large. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84ba720cefde05389830f35f6e6df6f6ac67"></a>kStatus_UART_RxWatermarkTooLarge</em>&nbsp;</td><td class="fielddoc">
<p>RX FIFO watermark too large. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84ba5ee8e23fc9ab20cf366942751b895f54"></a>kStatus_UART_FlagCannotClearManually</em>&nbsp;</td><td class="fielddoc">
<p>UART flag can't be manually cleared. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84ba950972a9e2ebbaa13c92e8f5a51f785d"></a>kStatus_UART_Error</em>&nbsp;</td><td class="fielddoc">
<p>Error happens on UART. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84ba2e5b644b1e10c426af818bc78657e992"></a>kStatus_UART_RxRingBufferOverrun</em>&nbsp;</td><td class="fielddoc">
<p>UART RX software ring buffer overrun. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84bab6b1fd6c2deec25992449f5b12303a26"></a>kStatus_UART_RxHardwareOverrun</em>&nbsp;</td><td class="fielddoc">
<p>UART RX receiver overrun. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84bae4ef4df9a5f756ccf1b4bf08292ec2fb"></a>kStatus_UART_NoiseError</em>&nbsp;</td><td class="fielddoc">
<p>UART noise error. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84baa7aa134f85df3d5863ca962ce1ea7ee0"></a>kStatus_UART_FramingError</em>&nbsp;</td><td class="fielddoc">
<p>UART framing error. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84baea20b2588c38f259f1412aa7132c9ef8"></a>kStatus_UART_ParityError</em>&nbsp;</td><td class="fielddoc">
<p>UART parity error. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84bae6cdb41e1b49958f57727cd47afd69b2"></a>kStatus_UART_BaudrateNotSupport</em>&nbsp;</td><td class="fielddoc">
<p>Baudrate is not support in current clock source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacef40dc8e8ac174bfe40ebcbc980f84ba43540408a2faf9ce9e8e8c940bddd456"></a>kStatus_UART_BreakDetect</em>&nbsp;</td><td class="fielddoc">
<p>Receiver detect BREAK signal. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="gadc68b8fd9ded3990f84129df23fee798"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__uart__driver.html#gadc68b8fd9ded3990f84129df23fee798">uart_data_bits_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggadc68b8fd9ded3990f84129df23fee798ab8c89dfed11b0628f58344705d4b0fb8"></a>kUART_SevenDataBits</em>&nbsp;</td><td class="fielddoc">
<p>Seven data bit. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadc68b8fd9ded3990f84129df23fee798a2d77888a8dd82a66fb7bd86e51b4127c"></a>kUART_EightDataBits</em>&nbsp;</td><td class="fielddoc">
<p>Eight data bit. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga436e5a7bdb5f24decb5bfb0c87a83ff4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__uart__driver.html#ga436e5a7bdb5f24decb5bfb0c87a83ff4">uart_parity_mode_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga436e5a7bdb5f24decb5bfb0c87a83ff4a97e2feae6671a6de1126ebc2edf4606b"></a>kUART_ParityDisabled</em>&nbsp;</td><td class="fielddoc">
<p>Parity disabled. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga436e5a7bdb5f24decb5bfb0c87a83ff4a9e68fe3aba46e045bee5433ed098bff0"></a>kUART_ParityEven</em>&nbsp;</td><td class="fielddoc">
<p>Even error check is selected. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga436e5a7bdb5f24decb5bfb0c87a83ff4ae48c7fabc9babf1be626ebeb2627a54c"></a>kUART_ParityOdd</em>&nbsp;</td><td class="fielddoc">
<p>Odd error check is selected. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="gaca4f14d23735c6afefb76cbee18e1db6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__uart__driver.html#gaca4f14d23735c6afefb76cbee18e1db6">uart_stop_bit_count_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaca4f14d23735c6afefb76cbee18e1db6a5a8829a108d8a46abb097a36cde051a7"></a>kUART_OneStopBit</em>&nbsp;</td><td class="fielddoc">
<p>One stop bit. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaca4f14d23735c6afefb76cbee18e1db6a9704b3ae3ee851acf324eb357f75ab56"></a>kUART_TwoStopBit</em>&nbsp;</td><td class="fielddoc">
<p>Two stop bits. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga700f3cd8e3800273a1591307cab6311c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__uart__driver.html#ga700f3cd8e3800273a1591307cab6311c">_uart_interrupt_enable</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga259a53f363288115306a45d08fc66eb8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__uart__driver.html#ga259a53f363288115306a45d08fc66eb8">_uart_flags</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This provides constants for the UART status flags for use in the UART functions. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a309643dfba0c44efc0600c02af6eaebf"></a>kUART_RxCharReadyFlag</em>&nbsp;</td><td class="fielddoc">
<p>Rx Character Ready Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a792f36da4b89b615ad2d20e05ccb4232"></a>kUART_RxErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Rx Error Detect Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a310a961508b63dfe3d8d996400ce410c"></a>kUART_RxOverrunErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Rx Overrun Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a088d4fcbbbe8a99aebe86debca4a97c2"></a>kUART_RxFrameErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Rx Frame Error Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8af76e33f2ae98819b0fdb938a96a3c7e9"></a>kUART_RxBreakDetectFlag</em>&nbsp;</td><td class="fielddoc">
<p>Rx Break Detect Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8aff287d5d8a910bd392c626f0b51a8ef0"></a>kUART_RxParityErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Rx Parity Error Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a0c92973ab1d527115fa01934c62a053d"></a>kUART_ParityErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Parity Error Interrupt Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8ac7e88bad028598aab3b9821b9a2e0267"></a>kUART_RtsStatusFlag</em>&nbsp;</td><td class="fielddoc">
<p>RTS_B Pin Status Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a3913198655fd8ce2eb451d0550619d32"></a>kUART_TxReadyFlag</em>&nbsp;</td><td class="fielddoc">
<p>Transmitter Ready Interrupt/DMA Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8ab6a18a71d4711614848e0abfa114d48d"></a>kUART_RtsDeltaFlag</em>&nbsp;</td><td class="fielddoc">
<p>RTS Delta Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a3446413cf0ba110c3f25e869ec723253"></a>kUART_EscapeFlag</em>&nbsp;</td><td class="fielddoc">
<p>Escape Sequence Interrupt Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a869aae50c5c1970a098d17c8ce7b844c"></a>kUART_FrameErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Frame Error Interrupt Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a50a2cc679d220e394c538803af4e287e"></a>kUART_RxReadyFlag</em>&nbsp;</td><td class="fielddoc">
<p>Receiver Ready Interrupt/DMA Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a95a6f29cdead568e08951974a708a77f"></a>kUART_AgingTimerFlag</em>&nbsp;</td><td class="fielddoc">
<p>Aging Timer Interrupt Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a58c55093c621cb30ff7db3dca0fb3fe9"></a>kUART_DtrDeltaFlag</em>&nbsp;</td><td class="fielddoc">
<p>DTR Delta Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8adab01f057c6ed194fa44d0efc64ae15c"></a>kUART_RxDsFlag</em>&nbsp;</td><td class="fielddoc">
<p>Receiver IDLE Interrupt Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a18f1130c93e0cb2033841dc9686129a3"></a>kUART_tAirWakeFlag</em>&nbsp;</td><td class="fielddoc">
<p>Asynchronous IR WAKE Interrupt Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8afec67475e7606d8612d8df8ba6273728"></a>kUART_AwakeFlag</em>&nbsp;</td><td class="fielddoc">
<p>Asynchronous WAKE Interrupt Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a49554d7b7783b495061c5cfc579250f8"></a>kUART_Rs485SlaveAddrMatchFlag</em>&nbsp;</td><td class="fielddoc">
<p>RS-485 Slave Address Detected Interrupt Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a89cdd9c043992663c2072079684d1f33"></a>kUART_AutoBaudFlag</em>&nbsp;</td><td class="fielddoc">
<p>Automatic Baud Rate Detect Complete Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a38300abd304436626e61b70f216f8865"></a>kUART_TxEmptyFlag</em>&nbsp;</td><td class="fielddoc">
<p>Transmit Buffer FIFO Empty. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a257bc03110bc5ebf9b2fbb50c144b320"></a>kUART_DtrFlag</em>&nbsp;</td><td class="fielddoc">
<p>DTR edge triggered interrupt flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8aab7d8fe2ab1cd29f7e27ff59fc6cd44e"></a>kUART_IdleFlag</em>&nbsp;</td><td class="fielddoc">
<p>Idle Condition Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8ad1ffb9b804eef7907a061b67672563ac"></a>kUART_AutoBaudCntStopFlag</em>&nbsp;</td><td class="fielddoc">
<p>Auto-baud Counter Stopped Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a2e0e3b65dd4ad1e0d9d4fc75802e6bd8"></a>kUART_RiDeltaFlag</em>&nbsp;</td><td class="fielddoc">
<p>Ring Indicator Delta Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a989877e611df5363fb1b9f2f35a10379"></a>kUART_RiFlag</em>&nbsp;</td><td class="fielddoc">
<p>Ring Indicator Input Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a2d7ecd6806bd476eddb0c8a4f06f8409"></a>kUART_IrFlag</em>&nbsp;</td><td class="fielddoc">
<p>Serial Infrared Interrupt Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a8ca129e7898c036893bae13929525883"></a>kUART_WakeFlag</em>&nbsp;</td><td class="fielddoc">
<p>Wake Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8adf5283f5c932378cac93919e7d5d77d8"></a>kUART_DcdDeltaFlag</em>&nbsp;</td><td class="fielddoc">
<p>Data Carrier Detect Delta Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a1c3d7335bce198659e94ae749044a565"></a>kUART_DcdFlag</em>&nbsp;</td><td class="fielddoc">
<p>Data Carrier Detect Input Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a683ac4d5b01bbfeea1282293cd089da0"></a>kUART_RtsFlag</em>&nbsp;</td><td class="fielddoc">
<p>RTS Edge Triggered Interrupt Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8af23b48cba192fcc511857cee4fd7cd3f"></a>kUART_TxCompleteFlag</em>&nbsp;</td><td class="fielddoc">
<p>Transmitter Complete Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8adb8b7904275137c75de5050adc1f2877"></a>kUART_BreakDetectFlag</em>&nbsp;</td><td class="fielddoc">
<p>BREAK Condition Detected Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a93d3c56466b4656dcce08d9323d7afd8"></a>kUART_RxOverrunFlag</em>&nbsp;</td><td class="fielddoc">
<p>Overrun Error Flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga259a53f363288115306a45d08fc66eb8a5f68dab1ddbb31a54997e5e33534b7e0"></a>kUART_RxDataReadyFlag</em>&nbsp;</td><td class="fielddoc">
<p>Receive Data Ready Flag. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gada461a15fc0fd6fdbaaf35263da9af89"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void UART_SoftwareReset </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function resets the transmit and receive state machines, all FIFOs and register USR1, USR2, UBIR, UBMR, UBRC , URXD, UTXD and UTS[6-3]</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gab5965a8e11f7e1d4d531141291fd5288"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">status_t UART_Init </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__uart__driver.html#structuart__config__t">uart_config_t</a> *&#160;</td>
          <td class="paramname"><em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcClock_Hz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function configures the UART module with user-defined settings. Call the <a class="el" href="group__uart__driver.html#ga47c7c09e04a0497f4530d553e27d96c5" title="l ">UART_GetDefaultConfig()</a> function to configure the configuration structure and get the default configuration. The example below shows how to use this API to configure the UART. </p>
<div class="fragment"><div class="line">*  <a class="code" href="group__uart__driver.html#structuart__config__t">uart_config_t</a> uartConfig;</div>
<div class="line">*  uartConfig.<a class="code" href="group__uart__driver.html#gacc123668836f3432c54ee6a2f6f318f1">baudRate_Bps</a> = 115200U;</div>
<div class="line">*  uartConfig.<a class="code" href="group__uart__driver.html#ga1a3abcf4f0f5d0a3893df14f2991aa39">parityMode</a> = <a class="code" href="group__uart__driver.html#gga436e5a7bdb5f24decb5bfb0c87a83ff4a97e2feae6671a6de1126ebc2edf4606b">kUART_ParityDisabled</a>;</div>
<div class="line">*  uartConfig.<a class="code" href="group__uart__driver.html#gaa026642db643d8cae1a64869acd9baf5">dataBitsCount</a> = <a class="code" href="group__uart__driver.html#ggadc68b8fd9ded3990f84129df23fee798a2d77888a8dd82a66fb7bd86e51b4127c">kUART_EightDataBits</a>;</div>
<div class="line">*  uartConfig.<a class="code" href="group__uart__driver.html#gadf6e33c13910e9ec7c2688f83a462be0">stopBitCount</a> = <a class="code" href="group__uart__driver.html#ggaca4f14d23735c6afefb76cbee18e1db6a5a8829a108d8a46abb097a36cde051a7">kUART_OneStopBit</a>;</div>
<div class="line">*  uartConfig.<a class="code" href="group__uart__driver.html#ga5eb9ab81752080bc726b8d625d2b6b21">txFifoWatermark</a> = 2;</div>
<div class="line">*  uartConfig.<a class="code" href="group__uart__driver.html#ga1bb7b2f0f7df79977d33be264fb5163a">rxFifoWatermark</a> = 1;</div>
<div class="line">*  uartConfig.enableAutoBaudrate = <span class="keyword">false</span>;</div>
<div class="line">*  uartConfig.<a class="code" href="group__uart__driver.html#ga91d575902455699a312c64b564133a8d">enableTx</a> = <span class="keyword">true</span>;</div>
<div class="line">*  uartConfig.<a class="code" href="group__uart__driver.html#gaa045acd340fc86d70a497f49e0a95bdd">enableRx</a> = <span class="keyword">true</span>;</div>
<div class="line">*  <a class="code" href="group__uart__driver.html#gab5965a8e11f7e1d4d531141291fd5288">UART_Init</a>(UART1, &amp;uartConfig, 24000000U);</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">config</td><td>Pointer to a user-defined configuration structure. </td></tr>
    <tr><td class="paramname">srcClock_Hz</td><td>UART clock source frequency in HZ. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">kStatus_Success</td><td>UART initialize succeed </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga3ff48bc211831be33e6fe5c50eb671a0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UART_Deinit </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function waits for transmit to complete, disables TX and RX, and disables the UART clock.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga47c7c09e04a0497f4530d553e27d96c5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UART_GetDefaultConfig </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__uart__driver.html#structuart__config__t">uart_config_t</a> *&#160;</td>
          <td class="paramname"><em>config</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Gets the default configuration structure.</p>
<p>This function initializes the UART configuration structure to a default value. The default values are: uartConfig-&gt;baudRate_Bps = 115200U; uartConfig-&gt;parityMode = kUART_ParityDisabled; uartConfig-&gt;dataBitsCount = kUART_EightDataBits; uartConfig-&gt;stopBitCount = kUART_OneStopBit; uartConfig-&gt;txFifoWatermark = 2; uartConfig-&gt;rxFifoWatermark = 1; uartConfig-&gt;enableAutoBaudrate = flase; uartConfig-&gt;enableTx = false; uartConfig-&gt;enableRx = false;</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">config</td><td>Pointer to a configuration structure. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gab3ba5019c11f288cc4f545dd656b6284"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">status_t UART_SetBaudRate </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>baudRate_Bps</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcClock_Hz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function configures the UART module baud rate. This function is used to update the UART module baud rate after the UART module is initialized by the UART_Init. </p>
<div class="fragment"><div class="line">*  <a class="code" href="group__uart__driver.html#gab3ba5019c11f288cc4f545dd656b6284">UART_SetBaudRate</a>(UART1, 115200U, 20000000U);</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">baudRate_Bps</td><td>UART baudrate to be set. </td></tr>
    <tr><td class="paramname">srcClock_Hz</td><td>UART clock source freqency in Hz. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">kStatus_UART_BaudrateNotSupport</td><td>Baudrate is not support in the current clock source. </td></tr>
    <tr><td class="paramname">kStatus_Success</td><td>Set baudrate succeeded. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gae1c2de08deac42b1fe8675bba9ece467"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void UART_Enable </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART base pointer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga4b6fdc3af78f9d5e8a1f8f6a07ce124d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void UART_Disable </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART base pointer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga5a6ca92e153c2a2c1323c5dc2fae6ab4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool UART_GetStatusFlag </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>flag</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The available status flag can be select from uart_status_flag_t enumeration.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART base pointer. </td></tr>
    <tr><td class="paramname">flag</td><td>Status flag to check. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">current</td><td>state of corresponding status flag. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaf547a539e6d7540010ef688e51bc2eeb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UART_ClearStatusFlag </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>flag</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The available status flag can be select from uart_status_flag_t enumeration.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART base pointer. </td></tr>
    <tr><td class="paramname">flag</td><td>Status flag to clear. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga49ecd761481a22956e3f46285038719c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UART_EnableInterrupts </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>mask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function enables the UART interrupts according to the provided mask. The mask is a logical OR of enumeration members. See <a class="el" href="group__uart__driver.html#ga700f3cd8e3800273a1591307cab6311c">_uart_interrupt_enable</a>. For example, to enable TX empty interrupt and RX data ready interrupt, do the following. </p>
<div class="fragment"><div class="line">*     <a class="code" href="group__uart__driver.html#ga49ecd761481a22956e3f46285038719c">UART_EnableInterrupts</a>(UART1,kUART_TxEmptyEnable | kUART_RxDataReadyEnable);</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">mask</td><td>The interrupts to enable. Logical OR of <a class="el" href="group__uart__driver.html#ga700f3cd8e3800273a1591307cab6311c">_uart_interrupt_enable</a>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga3f24b6b9b730046a9a81918f9abe7d99"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UART_DisableInterrupts </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>mask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function disables the UART interrupts according to the provided mask. The mask is a logical OR of enumeration members. See <a class="el" href="group__uart__driver.html#ga700f3cd8e3800273a1591307cab6311c">_uart_interrupt_enable</a>. For example, to disable TX empty interrupt and RX data ready interrupt do the following. </p>
<div class="fragment"><div class="line">*     <a class="code" href="group__uart__driver.html#ga49ecd761481a22956e3f46285038719c">UART_EnableInterrupts</a>(UART1,kUART_TxEmptyEnable | kUART_RxDataReadyEnable);</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">mask</td><td>The interrupts to disable. Logical OR of <a class="el" href="group__uart__driver.html#ga700f3cd8e3800273a1591307cab6311c">_uart_interrupt_enable</a>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga79bc0b880286ec0dc0543606fc772912"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t UART_GetEnabledInterrupts </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function gets the enabled UART interrupts. The enabled interrupts are returned as the logical OR value of the enumerators <a class="el" href="group__uart__driver.html#ga700f3cd8e3800273a1591307cab6311c">_uart_interrupt_enable</a>. To check a specific interrupt enable status, compare the return value with enumerators in <a class="el" href="group__uart__driver.html#ga700f3cd8e3800273a1591307cab6311c">_uart_interrupt_enable</a>. For example, to check whether the TX empty interrupt is enabled: </p>
<div class="fragment"><div class="line">*     uint32_t enabledInterrupts = <a class="code" href="group__uart__driver.html#ga79bc0b880286ec0dc0543606fc772912">UART_GetEnabledInterrupts</a>(UART1);</div>
<div class="line">*</div>
<div class="line">*     <span class="keywordflow">if</span> (kUART_TxEmptyEnable &amp; enabledInterrupts)</div>
<div class="line">*     {</div>
<div class="line">*         ...</div>
<div class="line">*     }</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>UART interrupt flags which are logical OR of the enumerators in <a class="el" href="group__uart__driver.html#ga700f3cd8e3800273a1591307cab6311c">_uart_interrupt_enable</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="gaf2ed68f3dd6ee8a272e9afd8ebd84f93"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void UART_EnableTx </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function enables or disables the UART transmitter.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">enable</td><td>True to enable, false to disable. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaa503e36c8ce82f1042ce186b9863871f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void UART_EnableRx </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function enables or disables the UART receiver.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">enable</td><td>True to enable, false to disable. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga371d2ceda535de3a74beba5a3465fab0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void UART_WriteByte </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function is used to write data to transmitter register. The upper layer must ensure that the TX register is empty or that the TX FIFO has room before calling this function.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">data</td><td>Data write to the TX register. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga3728011ac7906f3e03bb677b0f9cf7b4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static uint8_t UART_ReadByte </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function is used to read data from receiver register. The upper layer must ensure that the receiver register is full or that the RX FIFO has data before calling this function.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Data read from data register. </dd></dl>

</div>
</div>
<a class="anchor" id="gad67794d80b7ee2d3292b41af6ff1e100"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UART_WriteBlocking </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function polls the TX register, waits for the TX register to be empty or for the TX FIFO to have room and writes data to the TX buffer.</p>
<dl class="section note"><dt>Note</dt><dd>This function does not check whether all data is sent out to the bus. Before disabling the TX, check kUART_TransmissionCompleteFlag to ensure that the TX is finished.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">data</td><td>Start address of the data to write. </td></tr>
    <tr><td class="paramname">length</td><td>Size of the data to write. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga39d59e8a94f1af451a0db81888596639"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">status_t UART_ReadBlocking </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function polls the RX register, waits for the RX register to be full or for RX FIFO to have data, and reads data from the TX register.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">data</td><td>Start address of the buffer to store the received data. </td></tr>
    <tr><td class="paramname">length</td><td>Size of the buffer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">kStatus_UART_RxHardwareOverrun</td><td>Receiver overrun occurred while receiving data. </td></tr>
    <tr><td class="paramname">kStatus_UART_NoiseError</td><td>A noise error occurred while receiving data. </td></tr>
    <tr><td class="paramname">kStatus_UART_FramingError</td><td>A framing error occurred while receiving data. </td></tr>
    <tr><td class="paramname">kStatus_UART_ParityError</td><td>A parity error occurred while receiving data. </td></tr>
    <tr><td class="paramname">kStatus_Success</td><td>Successfully received all data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga63db308c32019b7dd6c0647d618e5247"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UART_TransferCreateHandle </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uart_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__uart__driver.html#gaf164fa4e12ff8a3e3f3997512001e007">uart_transfer_callback_t</a>&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userData</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function initializes the UART handle which can be used for other UART transactional APIs. Usually, for a specified UART instance, call this API once to get the initialized handle.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
    <tr><td class="paramname">callback</td><td>The callback function. </td></tr>
    <tr><td class="paramname">userData</td><td>The parameter of the callback function. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga223fba584bfabd599629d5ce92f929ac"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UART_TransferStartRingBuffer </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uart_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>ringBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ringBufferSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function sets up the RX ring buffer to a specific UART handle.</p>
<p>When the RX ring buffer is used, data received are stored into the ring buffer even when the user doesn't call the <a class="el" href="group__uart__driver.html#gaf804acde5d73ce0a5bf54b06195e1218" title="Receives a buffer of data using an interrupt method. ">UART_TransferReceiveNonBlocking()</a> API. If data is already received in the ring buffer, the user can get the received data from the ring buffer directly.</p>
<dl class="section note"><dt>Note</dt><dd>When using the RX ring buffer, one byte is reserved for internal use. In other words, if <code>ringBufferSize</code> is 32, only 31 bytes are used for saving data.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
    <tr><td class="paramname">ringBuffer</td><td>Start address of the ring buffer for background receiving. Pass NULL to disable the ring buffer. </td></tr>
    <tr><td class="paramname">ringBufferSize</td><td>Size of the ring buffer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga0c0bc73df49cb31dff0e903630314f5b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UART_TransferStopRingBuffer </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uart_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function aborts the background transfer and uninstalls the ring buffer.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga3921aa660977ca77dadf95fa35f1c3a9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t UART_TransferGetRxRingBufferLength </td>
          <td>(</td>
          <td class="paramtype">uart_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Length of received data in RX ring buffer. </dd></dl>

</div>
</div>
<a class="anchor" id="gad89afd7db1656c5aef404bb285d0dc05"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">status_t UART_TransferSendNonBlocking </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uart_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__uart__driver.html#structuart__transfer__t">uart_transfer_t</a> *&#160;</td>
          <td class="paramname"><em>xfer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function sends data using an interrupt method. This is a non-blocking function, which returns directly without waiting for all data to be written to the TX register. When all data is written to the TX register in the ISR, the UART driver calls the callback function and passes the <a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84baf36c829b1b889517bf775c0d7ce29fa6">kStatus_UART_TxIdle</a> as status parameter.</p>
<dl class="section note"><dt>Note</dt><dd>The kStatus_UART_TxIdle is passed to the upper layer when all data is written to the TX register. However, it does not ensure that all data is sent out. Before disabling the TX, check the kUART_TransmissionCompleteFlag to ensure that the TX is finished.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
    <tr><td class="paramname">xfer</td><td>UART transfer structure. See <a class="el" href="group__uart__driver.html#structuart__transfer__t" title="UART transfer structure. ">uart_transfer_t</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">kStatus_Success</td><td>Successfully start the data transmission. </td></tr>
    <tr><td class="paramname">kStatus_UART_TxBusy</td><td>Previous transmission still not finished; data not all written to TX register yet. </td></tr>
    <tr><td class="paramname">kStatus_InvalidArgument</td><td>Invalid argument. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaa64f9f89d8286fd3ef0736a8c40be2c2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UART_TransferAbortSend </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uart_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function aborts the interrupt-driven data sending. The user can get the remainBytes to find out how many bytes are not sent out.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga071727ba05b2937ef5ad641ca7faf9c7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">status_t UART_TransferGetSendCount </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uart_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function gets the number of bytes written to the UART TX register by using the interrupt method.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
    <tr><td class="paramname">count</td><td>Send bytes count. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">kStatus_NoTransferInProgress</td><td>No send in progress. </td></tr>
    <tr><td class="paramname">kStatus_InvalidArgument</td><td>The parameter is invalid. </td></tr>
    <tr><td class="paramname">kStatus_Success</td><td>Get successfully through the parameter <code>count</code>; </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaf804acde5d73ce0a5bf54b06195e1218"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">status_t UART_TransferReceiveNonBlocking </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uart_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__uart__driver.html#structuart__transfer__t">uart_transfer_t</a> *&#160;</td>
          <td class="paramname"><em>xfer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>receivedBytes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function receives data using an interrupt method. This is a non-blocking function, which returns without waiting for all data to be received. If the RX ring buffer is used and not empty, the data in the ring buffer is copied and the parameter <code>receivedBytes</code> shows how many bytes are copied from the ring buffer. After copying, if the data in the ring buffer is not enough to read, the receive request is saved by the UART driver. When the new data arrives, the receive request is serviced first. When all data is received, the UART driver notifies the upper layer through a callback function and passes the status parameter <a class="el" href="group__uart__driver.html#ggacef40dc8e8ac174bfe40ebcbc980f84bae0877b14627ed2aa8ddb2bf5b033f407">kStatus_UART_RxIdle</a>. For example, the upper layer needs 10 bytes but there are only 5 bytes in the ring buffer. The 5 bytes are copied to the xfer-&gt;data and this function returns with the parameter <code>receivedBytes</code> set to 5. For the left 5 bytes, newly arrived data is saved from the xfer-&gt;data[5]. When 5 bytes are received, the UART driver notifies the upper layer. If the RX ring buffer is not enabled, this function enables the RX and RX interrupt to receive data to the xfer-&gt;data. When all data is received, the upper layer is notified.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
    <tr><td class="paramname">xfer</td><td>UART transfer structure, see <a class="el" href="group__uart__driver.html#structuart__transfer__t" title="UART transfer structure. ">uart_transfer_t</a>. </td></tr>
    <tr><td class="paramname">receivedBytes</td><td>Bytes received from the ring buffer directly. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">kStatus_Success</td><td>Successfully queue the transfer into transmit queue. </td></tr>
    <tr><td class="paramname">kStatus_UART_RxBusy</td><td>Previous receive request is not finished. </td></tr>
    <tr><td class="paramname">kStatus_InvalidArgument</td><td>Invalid argument. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gacc35671622b2401545cc55cc6ae572d4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UART_TransferAbortReceive </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uart_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function aborts the interrupt-driven data receiving. The user can get the remainBytes to know how many bytes are not received yet.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga05df10f570cdca4ac2dff63b069d254e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">status_t UART_TransferGetReceiveCount </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uart_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function gets the number of bytes that have been received.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
    <tr><td class="paramname">count</td><td>Receive bytes count. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">kStatus_NoTransferInProgress</td><td>No receive in progress. </td></tr>
    <tr><td class="paramname">kStatus_InvalidArgument</td><td>Parameter is invalid. </td></tr>
    <tr><td class="paramname">kStatus_Success</td><td>Get successfully through the parameter <code>count</code>; </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gadb0c4f1e5b59db3aa2261df4f5ddb48d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UART_TransferHandleIRQ </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uart_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function handles the UART transmit and receive IRQ request.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga93a5d80d9f8ec9e61eb54db18efa5c63"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void UART_EnableTxDMA </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function enables or disables the transmit request when the transmitter has one or more slots available in the TxFIFO. The fill level in the TxFIFO that generates the DMA request is controlled by the TXTL bits.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">enable</td><td>True to enable, false to disable. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga32e14856ac77e50800e733ba8ab9c448"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void UART_EnableRxDMA </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function enables or disables the receive request when the receiver has data in the RxFIFO. The fill level in the RxFIFO at which a DMA request is generated is controlled by the RXTL bits .</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART peripheral base address. </td></tr>
    <tr><td class="paramname">enable</td><td>True to enable, false to disable. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga5ed56b76143c42e6e712d1a4d6a1fbdd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void UART_SetTxFifoWatermark </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>watermark</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<pre class="fragment">   A maskable interrupt is generated whenever the data level in
   the TxFIFO falls below the Tx FIFO watermark.
</pre><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART base pointer. </td></tr>
    <tr><td class="paramname">watermark</td><td>The Tx FIFO watermark. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga9fc461e2d9a906a2b5aa1363ab06044c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void UART_SetRxFifoWatermark </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>watermark</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<pre class="fragment">   A maskable interrupt is generated whenever the data level in
   the RxFIFO reaches the Rx FIFO watermark.
</pre><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART base pointer. </td></tr>
    <tr><td class="paramname">watermark</td><td>The Rx FIFO watermark. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gac88019d2b8abe60bd6ee8cf2c1e8dfb0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void UART_EnableAutoBaudRate </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART base pointer. </td></tr>
    <tr><td class="paramname">enable</td><td>Enable/Disable Automatic Baud Rate Detection feature.<ul>
<li>true: Enable Automatic Baud Rate Detection feature.</li>
<li>false: Disable Automatic Baud Rate Detection feature. </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga28850ab8c31bd095fde407992b937035"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool UART_IsAutoBaudRateComplete </td>
          <td>(</td>
          <td class="paramtype">UART_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>UART base pointer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>- true: Automatic baud rate detection has finished.<ul>
<li>false: Automatic baud rate detection has not finished. </li>
</ul>
</dd></dl>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="gacc123668836f3432c54ee6a2f6f318f1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t uart_config_t::baudRate_Bps</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga1a3abcf4f0f5d0a3893df14f2991aa39"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__uart__driver.html#ga436e5a7bdb5f24decb5bfb0c87a83ff4">uart_parity_mode_t</a> uart_config_t::parityMode</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="gadf6e33c13910e9ec7c2688f83a462be0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__uart__driver.html#gaca4f14d23735c6afefb76cbee18e1db6">uart_stop_bit_count_t</a> uart_config_t::stopBitCount</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="gaf91f05b0f951836e3002f60f0575f369"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* uart_transfer_t::data</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga21820f8294de0d75d863b72512a7c12f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t uart_transfer_t::dataSize</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga046372eac11f58a16f519c0ee264ea9e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* volatile uart_handle_t::txData</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga1e67a92b463ad328646834ea0de4d70d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">volatile size_t uart_handle_t::txDataSize</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga80361474eb03b3aa30d02bda82adce65"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t uart_handle_t::txDataSizeAll</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga5c87354702502998d3ccca9d9bfd3069"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* volatile uart_handle_t::rxData</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga46bd84d885004806f89744ad79edd81e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">volatile size_t uart_handle_t::rxDataSize</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga800a05d5ea3c6240daad46f466a8fea4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t uart_handle_t::rxDataSizeAll</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="gafeba8b549facc329937046e734681963"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* uart_handle_t::rxRingBuffer</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga8d6afed4b64233c959a180b66686c14c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t uart_handle_t::rxRingBufferSize</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga85d061606b31401fb4a9d0e22e77056c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">volatile uint16_t uart_handle_t::rxRingBufferHead</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga9f4482059188bea2603b1c07cf9cc084"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">volatile uint16_t uart_handle_t::rxRingBufferTail</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga2ef9706e8203ba72fa1e04c48581fb0f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__uart__driver.html#gaf164fa4e12ff8a3e3f3997512001e007">uart_transfer_callback_t</a> uart_handle_t::callback</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga69ce1fdb7a2f60c0ecc94c4d1b2ed6ff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* uart_handle_t::userData</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga9fa8f119b6e0e3a7805fb25edafb1498"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">volatile uint8_t uart_handle_t::txState</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul class="foot">
    <li class="footer">&copy; 2016 NXP Semiconductors. All rights reserved.
    </li>
  </ul>
</div>
</body>
</html>
